при срабатывании кода меняются значения только первой строке в справочнике
должно:
переходить на следующую и менять в следующей строке
//------------------------------------------------------------------
Процедура всем()
СписокЭлементов = СоздатьОбъект("СписокЗначений");
Контрагенты=СоздатьОбъект("Справочник.Контрагенты");
Контрагенты.ВыбратьЭлементы();
Пока Контрагенты.ПолучитьЭлемент()=1 Цикл
Сообщить(Контрагенты.Наименование);//вижу в цикле всех конртагентов по очереди
Если ПустоеЗначение(Контрагенты.договор)=0 Тогда
Сообщить(Контрагенты.ТекущийЭлемент().договор);//вижу текущий договор
Спр = СоздатьОбъект("Справочник.договора");
Спр.НайтиПоНаименованию(ТекущийЭлемент().договор.Наименование,0);
СтароеЗначение = Спр.договор;
Спр.договор = Спр.договор + 1;//меняет значение только в первой строке, тоесть цикл для этой строки не работает
Спр.Записать();
КонецЕсли;
Контрагенты.Записать();
КонецЦикла;
ИерархическийСписок(0,1);
ИспользоватьСписокЭлементов(СписокЭлементов);
КонецПроцедуры
//------------------------------------------------------------------
4andriy @ Сегодня, 15:28
,
а если так:
Спр.НайтиПоНаименованию(Контрагенты.договор.Наименование,0);
Проблема в том что контрагента записывали. Если так нужно делать, то предварительно заганяете в список значений, а потом в в цикле по списку получаете контрагента и изменяете его.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua