Имя: Пароль:
1C
1С v8
универсальный подбор и обработка объектов
0 DenisVich
 
22.01.18
17:54
Здравствуйте. Столкнулся со следующей проблемой. Обрабатываю записи в справочнике с табличной частью. Данные заполняются по нескольку раз.(Одна и та же запись повторяется в табличной части, сколько найденных объектов столько раз и вносятся в выбранную запись)
Вот код:
СписокКонтрагентов = Новый СписокЗначений;
СписокКонтрагентов.Добавить("Альянс Белгород 2 РС ООО");
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 2
|    Компьютеры.Ссылка,
|    Компьютеры.Контрагент КАК Контрагент
|ИЗ
|    Справочник.Компьютеры КАК Компьютеры
|ГДЕ
|     Компьютеры.Контрагент.Наименование В(&Контрагент)
|СГРУППИРОВАТЬ ПО
|    Компьютеры.Ссылка,
|    Компьютеры.Контрагент";
Запрос.УстановитьПараметр("Контрагент", СписокКонтрагентов);

РезультатЗапросаКомпьютеры = Запрос.Выполнить().Выбрать();
Если РезультатЗапросаКомпьютеры.Количество()>0 Тогда
    Пока РезультатЗапросаКомпьютеры.Следующий() Цикл

    Источник = РезультатЗапросаКомпьютеры.Ссылка;
    ЭлементОбработан = Ложь;

    Если Не ЭлементОбработан Тогда

           НовоеСвойство = Объект.Свойства.Добавить();
           НовоеСвойство.ВидСвойства = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Дата снятия с учета");
           НовоеСвойство.ЗначениеСвойства= НачалоГода(ТекущаяДата());
           Сообщить(СОКРЛП(РезультатЗапросаКомпьютеры.Ссылка.Контрагент)+" "+СОКРЛП(РезультатЗапросаКомпьютеры.Ссылка));
           Объект.Записать();
           ЭлементОбработан = Истина;
    КонецЕсли;

КонецЦикла;
КонецЕсли;
1 DenisVich
 
22.01.18
17:55
Поясняю, это произвольный алгоритм!
2 Darych
 
22.01.18
17:58
запрос в топку, СписокКонтрагентов.Добавить("Альянс Белгород 2 РС ООО") в топку
3 DenisVich
 
22.01.18
17:58
Что в этой обработке брать в качестве источника, если не использовать выборку?
4 DenisVich
 
22.01.18
18:00
"    Источник = ????????;
           НовоеСвойство = Объект.Свойства.Добавить();
           НовоеСвойство.ВидСвойства = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Дата снятия с учета");
           НовоеСвойство.ЗначениеСвойства= НачалоГода(ТекущаяДата());
           Сообщить(СОКРЛП(РезультатЗапросаКомпьютеры.Ссылка.Контрагент)+" "+СОКРЛП(РезультатЗапросаКомпьютеры.Ссылка));
           Объект.Записать();"
5 DenisVich
 
22.01.18
18:03
Источник = ТекущийОбъект;
6 DenisVich
 
22.01.18
18:03
В том так сразу, а подсказать!
7 DenisVich
 
22.01.18
18:03
*в топку