Программная установка основного договора

1. 14.01.21 00:24 Сейчас в теме
Доброго дня ! Не удается назначить основной договор, обработка запускается, отрабатывает без ошибок, результата нет.
В чем может быть дело
База на УФ. Основной договор хранится в одноименном реквизите справочника Контрагенты (не в регистре сведений !).

&НаСервере
Процедура Команда1НаСервере()
	Запрос = Новый Запрос(" 
|ВЫБРАТЬ 
|	Ссылка, 
|	Наименование 
|ИЗ 
|	Справочник.Контрагенты КАК Контрагенты
|ГДЕ
|   Контрагенты.ЭтоГруппа = Ложь 
|АВТОУПОРЯДОЧИВАНИЕ"); 
	
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	 ВыбДогКонтрагента = Справочники.ДоговорыКонтрагентов.Выбрать(,ВыборкаДетальныеЗаписи.Ссылка);
	 
	Пока ВыбДогКонтрагента.Следующий() Цикл			 
    КонтрагентОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
	КонтрагентОбъект.ОсновнойДоговор = ВыбДогКонтрагента;
	Попытка
	КонтрагентОбъект.Записать();
    Исключение
	 Сообщить("Не удалось записать объект """ + КонтрагентОбъект + """
	 |" + ОписаниеОшибки(), 60);	 
     КонецПопытки;
    КонецЦикла;

	 КонецЦикла; 
КонецПроцедуры
Показать
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
5. user705522_constantin_h 29 14.01.21 13:17 Сейчас в теме
(1)Какой тип у Контрагент.ОсновнойДоговор?
mnbvcxz10; +1 Ответить
2. user1503726 14.01.21 00:35 Сейчас в теме
В выборке по договорам теоретически можно указать более конкретные условия, отбор по умолчанию может быть отключен.
mnbvcxz10; +1 Ответить
3. ZergKRSK 128 14.01.21 07:30 Сейчас в теме
Научу пользоваться Отладчиком. Дорого.
8. mnbvcxz10 14.01.21 17:17 Сейчас в теме
(3) Все не слава Богу :), Отладчик чегой-то перестал arbeiten . На клиент-сервере иногда чудеса в решете происходят. Разбираться - руки не дошли
4. andy_zhav 185 14.01.21 10:03 Сейчас в теме
(1) Посмотрите модуль объекта справочника контрагенты, процедуру перед записью и при записи. Может там затирается. можно еще добавить команду перед записью объекта КонтрагентОбъект.ОбменДанными.Загрузка = истина;
mnbvcxz10; +1 Ответить
9. mnbvcxz10 14.01.21 17:20 Сейчас в теме
Всем спасибо
(4) ОбменДанными.Загрузка = истина.
Спасибо за дельный совет.
6. user633533_encantado 8 14.01.21 13:22 Сейчас в теме
Не понятно что у вас за конфигурация. В общем случае могут быть обработчики, которые не дают назначить какой попало договор как основной.
mnbvcxz10; +1 Ответить
7. mnbvcxz10 14.01.21 17:14 Сейчас в теме
(6) Да вы правы. Конфа нетиповая, отраслевая. Реализована на версии БСП 3 - 4 летней давности
10. mnbvcxz10 14.01.21 17:26 Сейчас в теме
Рещил вопрос "от обратного":

Процедуру разместил (временно) в модуле списка справочника договоры. И там уже перебирая договора "вытаскивал" владельца договора и после назначал основной договор. Буквой "зю" реализация - но сработало.

&НаСервере
Процедура УстановитьОсновнымНаСервере()
	
	Запрос = Новый Запрос(" 
|ВЫБРАТЬ 
|	Ссылка 
|ИЗ 
|	Справочник.ДоговорыКонтрагентов КАК. ДоговорыКонтрагентов ; 
	
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();

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

КонецЦикла; 

КонецПроцедуры
Показать
Оставьте свое сообщение
Вопросы с вознаграждением