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

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
1. JLaikova 08.02.16 13:18 Сейчас в теме
Перестала работать обработка. Полез разбираться. В справочнике Контрагенты реквизит ОсновнойДоговор переименован в УдалитьОсновнойДоговор.
В справочнике ДоговорыКонтрагентов также нет соответствующего поля.
В конфигурации теперь можно отметить "Использовать как основной" произвольное количество договоров.
Не понятно и неудобно.

Поясните, пожалуйста, в чем логика и как теперь жить).
Как отметить договор программно "Основным", как выбрать основной договор?
1С:Предприятие 8.3 (8.3.7.1790)
Бухгалтерия предприятия, редакция 3.0 (3.0.43.29)
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Xershi 1532 08.02.16 13:20 Сейчас в теме
(1) JLaikova, наверно теперь это в регистре. Искать регистр и брать первую запись.
amaksimov; +1 Ответить
5. JLaikova 08.02.16 13:27 Сейчас в теме
(2) Xershi, Контрагент=Справочники.Контрагенты.НайтиПоКоду(Код);
НайденныеСтроки = НовыйДокумент.Контрагент
.....................


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

НоваяСтрока.ДоговорКонтрагента= РегистрыСведений.ОсновныеДоговорыКонтрагента.ПолучитьПервое(??????????? а тут не соображу(((((;
6. sssss_aaaaa_2011 08.02.16 13:43 Сейчас в теме
(5) JLaikova, а почему именно ПЕРВЫЕ? Там вроде отбор по типу договора должен быть? И вроде только один одного типа. По коду посмотреть не судьба?
7. JLaikova 08.02.16 13:48 Сейчас в теме
(6) sssss_aaaaa_2011, по причине:
Несоответствие типов (параметр номер '1')
8. sssss_aaaaa_2011 08.02.16 13:55 Сейчас в теме
(7) JLaikova, ну так по коду надо посмотреть что и какого типа надо использовать. Об этом так трудно догадаться?
9. Xershi 1532 08.02.16 14:10 Сейчас в теме
(5) JLaikova, а в чем проблема скопировать код заполнения договора при изменении контрагента?
13. config 204 08.02.16 14:42 Сейчас в теме
(1) JLaikova, а так не сработает?

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

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


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


но надо изучать.....
15. config 204 08.02.16 15:20 Сейчас в теме
(14) JLaikova, а в каком документе надо найти договор?
3. sssss_aaaaa_2011 08.02.16 13:22 Сейчас в теме
Не понятно и неудобно.
То есть ещё ничего не знаем про причину изменений и не понимаем эти изменения, но уже расставляем оценки?
Договоры бывают разных типов.
Основные договоры теперь хранятся в регистре сведений, откуда их и можно получить.
4. JLaikova 08.02.16 13:25 Сейчас в теме
(3) sssss_aaaaa_2011, Нашала НоваяСтрока.ДоговорКонтрагента= РегистрыСведений.ОсновныеДоговорыКонтрагента.. но дальше что-то не соображу((
10. JLaikova 08.02.16 14:16 Сейчас в теме
У меня не совсем изменение контаргента.. у меня есть дбф, я загружаю по реквизитам , нахожу контарегнта пок оду. и основной договор.
НоваяСтрока.ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента; Теерь все усложняется и надо переписать все обработки. Вместо одной этой строки процедура что ль должна быть.
12. Xershi 1532 08.02.16 14:31 Сейчас в теме
(10) JLaikova, заменить получение реквизита процедурой. Процедуру можно поместить в модуль менеджера. Если она в конфигурации еще не написана.
11. JLaikova 08.02.16 14:19 Сейчас в теме
НАдо чтоб нашел основной договор Контаргента и записал в документ. РАньше все решалось одной строкой
НоваяСтрока.ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента;
16. JLaikova 08.02.16 16:13 Сейчас в теме
ПриходныйКассовыйОрдер
17. config 204 08.02.16 16:20 Сейчас в теме
(16) JLaikova, ну там типовая функция есть, которая заполняет именно в ТЧ Расшифровка платежа

&НаСервере
Процедура РасшифровкаПлатежаДоговорКонтрагентаПриИзмененииНаСервере(ИдСтроки)
	
	СтрокаПлатеж = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(ИдСтроки);
	
	ПараметрыОбъекта = ТекущиеПараметрыОбъекта(ЭтотОбъект);
	ПараметрыОбъекта.ДоговорКонтрагента = СтрокаПлатеж.ДоговорКонтрагента;
	СвойстваПлатежа  = СвойстваСтрокРасшифровкиПлатежа(ПараметрыОбъекта, Ложь);
	ЗаполнитьЗначенияСвойств(СтрокаПлатеж, СвойстваПлатежа);
	
	Если ЗначениеЗаполнено(СтрокаПлатеж.ДоговорКонтрагента) Тогда
		КонтрагентБезДоговоров = Ложь;
	КонецЕсли;
	
	ПараметрыЗаполненияСчетовУчета = НачатьЗаполнениеСчетовУчета(
		"РасшифровкаПлатежа.ДоговорКонтрагента",
		Объект,
		СтрокаПлатеж);
	Изменения = СчетаУчетаВДокументах.ЗаполнитьРеквизитыПриИзменении(
		Документы.ПриходныйКассовыйОрдер,
		ПараметрыЗаполненияСчетовУчета.КЗаполнению,
		Объект,
		"РасшифровкаПлатежа",
		СтрокаПлатеж);
	ЗаполнитьЗначенияСвойств(СвойстваПлатежа, Изменения);
	ЗаполнитьЗначенияСвойств(СтрокаПлатеж,    Изменения);
	
	Если ПрименениеУСН Тогда
		ЗаполнитьОтражениеСтрокиВУСН(СтрокаПлатеж, ЭтотОбъект);
	КонецЕсли;
	
КонецПроцедуры
Показать
18. JLaikova 08.02.16 16:27 Сейчас в теме
В документе есть, у меня документы создаются внешней обработкой по реквизитам и договор контрагента - выбирался автоматически как основной..
19. JLaikova 08.02.16 18:25 Сейчас в теме
МассивВидовДоговоров = Новый Массив;
МассивВидовДоговоров.Добавить(ДоговорКонтрагента);
НайденДОговор = Ложь;

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



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

//НоваяСтрока.ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента;
Если НайденДоговор=Истина Тогда
НоваяСтрока.ДоговорКонтрагента=НовыйДокумент.ДоговорКонтрагента;
//Иначе
// НоваяСтрока.ДоговорКонтрагента= НовДок.ДоговорКонтрагента.ВидДоговора.Пустая();
КонецЕсли;
Вот может кому пригодится. Решение нашлось! Всем спасибо за участие!!!
ACE$; Yan_Malyakov; Andrei_Ivanov; deletel; Stavsles; Tigriss; snake2571; mat121; m@riu/\@; +9 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот