8.3 БП. Как программно вытащить основной договор контрагента?
Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
Перестала работать обработка. Полез разбираться. В справочнике Контрагенты реквизит ОсновнойДоговор переименован в УдалитьОсновнойДоговор.
В справочнике ДоговорыКонтрагентов также нет соответствующего поля.
В конфигурации теперь можно отметить "Использовать как основной" произвольное количество договоров.
Не понятно и неудобно.
Поясните, пожалуйста, в чем логика и как теперь жить).
Как отметить договор программно "Основным", как выбрать основной договор?
1С:Предприятие 8.3 (8.3.7.1790)
Бухгалтерия предприятия, редакция 3.0 (3.0.43.29)
В справочнике ДоговорыКонтрагентов также нет соответствующего поля.
В конфигурации теперь можно отметить "Использовать как основной" произвольное количество договоров.
Не понятно и неудобно.
Поясните, пожалуйста, в чем логика и как теперь жить).
Как отметить договор программно "Основным", как выбрать основной договор?
1С:Предприятие 8.3 (8.3.7.1790)
Бухгалтерия предприятия, редакция 3.0 (3.0.43.29)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Xershi, Контрагент=Справочники.Контрагенты.НайтиПоКоду(Код);
НайденныеСтроки = НовыйДокумент.Контрагент
.....................
НоваяСтрока = НовыйДокумент.РасшифровкаПлатежа.Добавить();
//НоваяСтрока.ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента;
НоваяСтрока.ДоговорКонтрагента= РегистрыСведений.ОсновныеДоговорыКонтрагента.ПолучитьПервое(??????????? а тут не соображу(((((;
НайденныеСтроки = НовыйДокумент.Контрагент
.....................
НоваяСтрока = НовыйДокумент.РасшифровкаПлатежа.Добавить();
//НоваяСтрока.ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента;
НоваяСтрока.ДоговорКонтрагента= РегистрыСведений.ОсновныеДоговорыКонтрагента.ПолучитьПервое(??????????? а тут не соображу(((((;
(1) JLaikova, а так не сработает?
//Попробуем найти договор
ВидДоговора = Новый СписокЗначений;
ВидДоговора.Добавить(Перечисления.ВидыДоговоровКонтрагентов.СПоставщиком);
ЗаполнениеДокументов.ПриИзмененииЗначенияКонтрагента(НовоеПоступление,ВидДоговора);
//НовоеПоступление - Документ ПоступлениеТоваровУслуг
(13) config,
НоваяСтрока = НовыйДокумент.РасшифровкаПлатежа.Добавить();
ВидДоговора = Новый СписокЗначений;
ВидДоговора.Добавить(Перечисления.ВидыДоговоровКонтрагентов.СПокупателем);
ЗаполнениеДокументов.ПриИзмененииЗначенияКонтрагента(НовыйДокумент,ВидДоговора);
ДОговорКонтрагента = ВидДоговора;
//НоваяСтрока.ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента;
НоваяСтрока.ДоговорКонтрагента = ВидДоговора;
так не срабатывает.. не находит он основнной договор и пое договор - пустое..((
НАшла еще
но надо изучать.....
НоваяСтрока = НовыйДокумент.РасшифровкаПлатежа.Добавить();
ВидДоговора = Новый СписокЗначений;
ВидДоговора.Добавить(Перечисления.ВидыДоговоровКонтрагентов.СПокупателем);
ЗаполнениеДокументов.ПриИзмененииЗначенияКонтрагента(НовыйДокумент,ВидДоговора);
ДОговорКонтрагента = ВидДоговора;
//НоваяСтрока.ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента;
НоваяСтрока.ДоговорКонтрагента = ВидДоговора;
так не срабатывает.. не находит он основнной договор и пое договор - пустое..((
НАшла еще
Для работы с этой новой сущностью теперь служит регистр сведений "ОсновныеДоговорыКонтрагентов".
А для получения основного договора использовал функцию общего модуля РаботаСДоговорамиКонтрагентовБП.УстановитьДоговорКонтрагента
Вложения
А для получения основного договора использовал функцию общего модуля РаботаСДоговорамиКонтрагентовБП.УстановитьДоговорКонтрагента
Вложения
но надо изучать.....
Не понятно и неудобно.
То есть ещё ничего не знаем про причину изменений и не понимаем эти изменения, но уже расставляем оценки?
Договоры бывают разных типов.
Основные договоры теперь хранятся в регистре сведений, откуда их и можно получить.
У меня не совсем изменение контаргента.. у меня есть дбф, я загружаю по реквизитам , нахожу контарегнта пок оду. и основной договор.
НоваяСтрока.ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента; Теерь все усложняется и надо переписать все обработки. Вместо одной этой строки процедура что ль должна быть.
НоваяСтрока.ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента; Теерь все усложняется и надо переписать все обработки. Вместо одной этой строки процедура что ль должна быть.
(16) JLaikova, ну там типовая функция есть, которая заполняет именно в ТЧ Расшифровка платежа
&НаСервере
Процедура РасшифровкаПлатежаДоговорКонтрагентаПриИзмененииНаСервере(ИдСтроки)
СтрокаПлатеж = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(ИдСтроки);
ПараметрыОбъекта = ТекущиеПараметрыОбъекта(ЭтотОбъект);
ПараметрыОбъекта.ДоговорКонтрагента = СтрокаПлатеж.ДоговорКонтрагента;
СвойстваПлатежа = СвойстваСтрокРасшифровкиПлатежа(ПараметрыОбъекта, Ложь);
ЗаполнитьЗначенияСвойств(СтрокаПлатеж, СвойстваПлатежа);
Если ЗначениеЗаполнено(СтрокаПлатеж.ДоговорКонтрагента) Тогда
КонтрагентБезДоговоров = Ложь;
КонецЕсли;
ПараметрыЗаполненияСчетовУчета = НачатьЗаполнениеСчетовУчета(
"РасшифровкаПлатежа.ДоговорКонтрагента",
Объект,
СтрокаПлатеж);
Изменения = СчетаУчетаВДокументах.ЗаполнитьРеквизитыПриИзменении(
Документы.ПриходныйКассовыйОрдер,
ПараметрыЗаполненияСчетовУчета.КЗаполнению,
Объект,
"РасшифровкаПлатежа",
СтрокаПлатеж);
ЗаполнитьЗначенияСвойств(СвойстваПлатежа, Изменения);
ЗаполнитьЗначенияСвойств(СтрокаПлатеж, Изменения);
Если ПрименениеУСН Тогда
ЗаполнитьОтражениеСтрокиВУСН(СтрокаПлатеж, ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
Показать
МассивВидовДоговоров = Новый Массив;
МассивВидовДоговоров.Добавить(ДоговорКонтрагента);
НайденДОговор = Ложь;
РаботаСДоговорамиКонтрагентовБП.УстановитьДоговорКонтрагента(НовыйДокумент.ДоговорКонтрагента, НовыйДокумент.Контрагент, НовыйДокумент.Организация, МассивВидовДоговоров);
Если НовыйДокумент.ДоговорКонтрагента <> Справочники.ДоговорыКонтрагентов.ПустаяСсылка() Тогда
НайденДоговор = Истина;
КонецЕсли;
//
НоваяСтрока = НовыйДокумент.РасшифровкаПлатежа.Добавить();
//НоваяСтрока.ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента;
Если НайденДоговор=Истина Тогда
НоваяСтрока.ДоговорКонтрагента=НовыйДокумент.ДоговорКонтрагента;
//Иначе
// НоваяСтрока.ДоговорКонтрагента= НовДок.ДоговорКонтрагента.ВидДоговора.Пустая();
КонецЕсли;
Вот может кому пригодится. Решение нашлось! Всем спасибо за участие!!!
МассивВидовДоговоров.Добавить(ДоговорКонтрагента);
НайденДОговор = Ложь;
РаботаСДоговорамиКонтрагентовБП.УстановитьДоговорКонтрагента(НовыйДокумент.ДоговорКонтрагента, НовыйДокумент.Контрагент, НовыйДокумент.Организация, МассивВидовДоговоров);
Если НовыйДокумент.ДоговорКонтрагента <> Справочники.ДоговорыКонтрагентов.ПустаяСсылка() Тогда
НайденДоговор = Истина;
КонецЕсли;
//
НоваяСтрока = НовыйДокумент.РасшифровкаПлатежа.Добавить();
//НоваяСтрока.ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента;
Если НайденДоговор=Истина Тогда
НоваяСтрока.ДоговорКонтрагента=НовыйДокумент.ДоговорКонтрагента;
//Иначе
// НоваяСтрока.ДоговорКонтрагента= НовДок.ДоговорКонтрагента.ВидДоговора.Пустая();
КонецЕсли;
Вот может кому пригодится. Решение нашлось! Всем спасибо за участие!!!
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот