1с как выбрать основной договор

25.10.2018 Выкл. Автор admin

8.3 БП. Как программно вытащить основной договор контрагента?

Перестала работать обработка. Полез разбираться. В справочнике Контрагенты реквизит ОсновнойДоговор переименован в УдалитьОсновнойДоговор.
В справочнике ДоговорыКонтрагентов также нет соответствующего поля.
В конфигурации теперь можно отметить «Использовать как основной» произвольное количество договоров.
Не понятно и неудобно.

Поясните, пожалуйста, в чем логика и как теперь жить).
Как отметить договор программно «Основным», как выбрать основной договор?
1С:Предприятие 8.3 (8.3.7.1790)
Бухгалтерия предприятия, редакция 3.0 (3.0.43.29)

(2) Xershi, Контрагент=Справочники.Контрагенты.НайтиПоКоду(Код);
НайденныеСтроки = НовыйДокумент.Контрагент
.

НоваяСтрока = НовыйДокумент.РасшифровкаПлатежа.Добавить();
//НоваяСтрока.ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента;

НоваяСтрока.ДоговорКонтрагента= РегистрыСведений.ОсновныеДоговорыКонтрагента.ПолучитьПервое(. а тут не соображу(((((;

(1) JLaikova, а так не сработает?

(13) config,
НоваяСтрока = НовыйДокумент.РасшифровкаПлатежа.Добавить();
ВидДоговора = Новый СписокЗначений;
ВидДоговора.Добавить(Перечисления.ВидыДоговоровКонтрагентов.СПокупателем);
ЗаполнениеДокументов.ПриИзмененииЗначенияКонтрагента(НовыйДокумент,ВидДоговора);
ДОговорКонтрагента = ВидДоговора;
//НоваяСтрока.ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента;
НоваяСтрока.ДоговорКонтрагента = ВидДоговора;

так не срабатывает.. не находит он основнной договор и пое договор — пустое..((

но надо изучать.

(16) JLaikova, ну там типовая функция есть, которая заполняет именно в ТЧ Расшифровка платежа

МассивВидовДоговоров = Новый Массив;
МассивВидовДоговоров.Добавить(ДоговорКонтрагента);
НайденДОговор = Ложь;

РаботаСДоговорамиКонтрагентовБП.УстановитьДоговорКонтрагента(НовыйДокумент.ДоговорКонтрагента, НовыйДокумент.Контрагент, НовыйДокумент.Организация, МассивВидовДоговоров);
Если НовыйДокумент.ДоговорКонтрагента <> Справочники.ДоговорыКонтрагентов.ПустаяСсылка() Тогда
НайденДоговор = Истина;
КонецЕсли;

//НоваяСтрока.ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента;
Если НайденДоговор=Истина Тогда
НоваяСтрока.ДоговорКонтрагента=НовыйДокумент.ДоговорКонтрагента;
//Иначе
// НоваяСтрока.ДоговорКонтрагента= НовДок.ДоговорКонтрагента.ВидДоговора.Пустая();
КонецЕсли;
Вот может кому пригодится. Решение нашлось! Всем спасибо за участие.

Программно выбрать договор контрагента

(1) BARDER,
Ответ 16 все правильно написал.

10. BARDER 16.12.13 0:40

(9) torch, обычное прилож. я уже пробывал, объект не канает, я обращаюсь к документу который создаю программно

PS
Код очень похож на тот, что я пытался делать год назад, также нелепо и с полным отсутсвием понимая.
Извини не удержался 🙂

Читайте так же:  Частная собственность физических лиц рб

Всеравно пустует строка, контрагент записывается а Договор нет.

Не используйте форму, используйте сам объект. Заполняйте полностью объект, а уже потом, если нужно — открывайте форму документа.

(20) Alex_E, С вашей подсказкой реализовал то что хотел, но вот еще проблема в Журнале проводок РКО не регистрируется, если заново вручную все данные перевыбрать то появляется.

Как с этим бороться?

Код как реализовал:

Установи у контрагента «Физические лица» основной договор и этот договор присваивай

Как в бухгалтерии 2.0 обратится к Организации которая установлена основной?

Так не получается, пишет ошибку что переменная не определена «Организация» Пробовал ее прописать как Справочники.Организации пустую строку оставляет

БП3, Основной договор контрагента

Добрый вечер.
В БП3 реквизит ОсновнойДоговорКонтрагента переехал в РегистрСведений, в принципе, для чего было сделано поняла, ок, привыкаем, под конец дня затык с вроде бы простейшим куском кода.
Пытаюсь проверить, есть ли у контрагента основной договор, если нет, создаю, помечаю что основной и тд.. Собственно, затык на проверке условия есть\нет. Не видит ни установленную программно пометку,что основной, ни вручную перещелкнутую неоднократно на форме. В сам регистр заглядывала, все имеется..

Отбор = Новый Структура;
Орг =Справочники.Организации.НайтиПоКоду(«000000001»);
Отбор.Вставить(«Организация»,Орг);
Отбор.Вставить(«Контрагент»,Док.Контрагент);
Отбор.Вставить(«ВидДоговора»,Перечисления.ВидыДоговоровКонтрагентов.СПокупателем);

Если Док.ДоговорКонтрагента=Дог.ПустаяСсылка() Тогда

Основной договор контрагента

Всем привет!
Подскажите как установить один из договоров контрагента в качестве основного?
Бухгалтерия предприятия, редакция 3.0 (3.0.43.162).

Я в курсе, что теперь появился регистр сведений для хранения основных договоров. Вопрос в том как изменить основной договор в пользовательском режиме.

Почему удалили поле Основной договор контрагента?

Перестала работать обработка. Полез разбираться. В справочнике Контрагенты реквизит ОсновнойДоговор переименован в УдалитьОсновнойДоговор.
В справочнике ДоговорыКонтрагентов также нет соответствующего поля.
В конфигурации теперь можно отметить «Использовать как основной» произвольное количество договоров. Где это хранится, не нашел.

Читайте так же:  Трудовой договор с учредителем и директором в одном лице

Не понятно и неудобно.

Поясните, пожалуйста, в чем логика и как теперь жить).
Как отметить договор программно «Основным», как выбрать основной договор?

1С:Предприятие 8.3 (8.3.7.1790)
Бухгалтерия предприятия, редакция 3.0 (3.0.43.29)

(6) Возможно, они добавили еще и гемороя программистам.

Почему нельзя было оставить реквизит ОсновнойДоговор для тех компаний, у которых одна организация и которым не нужно это бесконечное множество основных договоров? ведь есть же ФО УчетПоНесколькимОрганизациям, по ней можно скрывать это поле

(8) угу, давайте оставим 100500 отдельных реквизитов для тыщи вариантов компаний. а потом будем это всё изовсех сил поддерживать.

Нет, конечно они неочень хорошие люди что логику некоторых подсистем слишком кардинально меняют, но в данном случае не думаю что это плохой ход

(17) А дальше что с ним делать?

(22) зачем хвост? надо получить основной договор — смотришь ОсновнойДоговор. если пустое — ищешь по регистру.

При включении ФО «ИспользоватьОсновныеДоговораВРазрезеОрганизаций» все основные договора перемещаются в регистры и очищаются. тут все просто

Ау, Stim
Что тебя так заклинило на организациях? Ты читал описание изменений?

Речь о том, чтобы была возможность установить основной договор не только для организации, но и в разрезе видов договоров (основной с покупателем, основной с поставщиком и т.д.). Для случая, когда один контрагент может быть как поставщиком так и покупателем. А это уже гораздо более частая ситуация, чем ведение учета по одной организации.

Вариант с двойной логикой (где-то — реквизит, а где-то РС) считаю порочным, т.к. значительно усложняет доработку (новые ФО, алгоритмы обработки этих ФО и т.д.) без видимого профита.

как с помощью обработки установить основной договор контрагента

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

Читайте так же:  Заявление о потери свидетельства о регистрации

выборка = Справочники.ДоговорыКонтрагентов.Выбрать( ,Контрагенты);
Пока выборка.Следующий() = 1 Цикл
Если (выборка.Наименование=»Əsas Müqavilə») и (выборка.ВидДоговора=перечисления.ВидыДоговоровКонтрагентов.СПокупателем) тогда
КонтрагентыОбъект.ОсновнойДоговорКонтрагента=выборка.Ссылка;
КонтрагентыОбъект.Записать();

иначе
сообщить(«нет Əsas Müqavilə!»);
конецесли;
КонецЦикла;

(0) какая связь между основным договором и проведением реализации?

Исправь загрузку реализации чтобы она брала не основной договор, а искала по наименованию, или сначало основной, а если он пустой — ищем по наименованию