Версия для печати темы (https://pro1c.org.ua/index.php?s=0d1874e1c6d1fff858b4414b4ef8d346&showtopic=66746)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ цикл для контрагентов

Автор: 4andriy 30.09.21, 14:28

при срабатывании кода меняются значения только первой строке в справочнике
должно:
переходить на следующую и менять в следующей строке

//------------------------------------------------------------------
Процедура всем()

СписокЭлементов = СоздатьОбъект("СписокЗначений");
Контрагенты=СоздатьОбъект("Справочник.Контрагенты");
Контрагенты.ВыбратьЭлементы();

Пока Контрагенты.ПолучитьЭлемент()=1 Цикл
Сообщить(Контрагенты.Наименование);//вижу в цикле всех конртагентов по очереди

Если ПустоеЗначение(Контрагенты.договор)=0 Тогда
Сообщить(Контрагенты.ТекущийЭлемент().договор);//вижу текущий договор
Спр = СоздатьОбъект("Справочник.договора");
Спр.НайтиПоНаименованию(ТекущийЭлемент().договор.Наименование,0);
СтароеЗначение = Спр.договор;
Спр.договор = Спр.договор + 1;//меняет значение только в первой строке, тоесть цикл для этой строки не работает
Спр.Записать();
КонецЕсли;
Контрагенты.Записать();
КонецЦикла;
ИерархическийСписок(0,1);
ИспользоватьСписокЭлементов(СписокЭлементов);    
КонецПроцедуры
//------------------------------------------------------------------

Автор: denis84 30.09.21, 14:38

4andriy @ Сегодня, 15:28 * ,
а если так:

Спр.НайтиПоНаименованию(Контрагенты.договор.Наименование,0);


а меняете договора? а зачем записываете справочник контрагентов?

Автор: 4andriy 30.09.21, 14:46

denis84 @ Сегодня, 15:38 * ,
работает)
да, лишнее, щас уберу)

Автор: alex1c 01.10.21, 7:16

Проблема в том что контрагента записывали. Если так нужно делать, то предварительно заганяете в список значений, а потом в в цикле по списку получаете контрагента и изменяете его.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua