Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: цикл для контрагентов
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
4andriy
при срабатывании кода меняются значения только первой строке в справочнике
должно:
переходить на следующую и менять в следующей строке

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

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

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

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

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


а меняете договора? а зачем записываете справочник контрагентов?
4andriy
denis84 @ Сегодня, 15:38 необходимо зарегистрироваться для просмотра ссылки ,
работает)
да, лишнее, щас уберу)
alex1c
Проблема в том что контрагента записывали. Если так нужно делать, то предварительно заганяете в список значений, а потом в в цикле по списку получаете контрагента и изменяете его.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.