Как программно создать договор контрагента.
Первый раз пишу в 1Cv8.
Импортирую контрагентов из excel. Надо записать договор, взял из формы справочника процедуру.
Процедура ПроверитьОсновнойДоговорКонтрагента(Контрагент, НовыйОсновнойДоговорУказан)
НайденныйДоговорОбъект = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
НайденныйДоговорОбъект.Наименование = «Основной договор»;
НайденныйДоговорОбъект.ВедениеВзаиморасчетов = ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, «ОсновноеВедениеВзаиморасчетовПоДоговорам»);
Если ЗначениеНеЗаполнено(НайденныйДоговорОбъект.ВедениеВзаиморасчетов) Тогда
НайденныйДоговорОбъект.ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоЗаказам;
КонецЕсли;
НайденныйДоговорОбъект.ВалютаВзаиморасчетов = ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, «ОсновнаяВалютаВзаиморасчетов»);
Если ЗначениеНеЗаполнено(НайденныйДоговорОбъект.ВалютаВзаиморасчетов) Тогда
НайденныйДоговорОбъект.ВалютаВзаиморасчетов = Константы.ВалютаУправленческогоУчета.Получить();
КонецЕсли;
НайденныйДоговорОбъект.Организация = ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, «ОсновнаяОрганизация»);
Если ЗначениеНеЗаполнено(НайденныйДоговорОбъект.Организация) Тогда
Выборка = Справочники.Организации.Выбрать();
Если Выборка.Следующий() Тогда
НайденныйДоговорОбъект.Организация = Выборка.Ссылка;
КонецЕсли;
КонецЕсли;
НайденныйДоговорОбъект.Владелец = Контрагент;
НайденныйДоговорОбъект.ВидУсловийДоговора = Перечисления.ВидыУсловийДоговоровВзаиморасчетов.БезДополнительныхУсловий;
Если Контрагент.Покупатель Тогда
НайденныйДоговорОбъект.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем;
НайденныйДоговорОбъект.ТипЦен = Справочники.ТипыЦенНоменклатуры.ПустаяСсылка();
ИначеЕсли Контрагент.Поставщик Тогда
НайденныйДоговорОбъект.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПоставщиком;
НайденныйДоговорОбъект.ТипЦен = Справочники.ТипыЦенНоменклатурыКонтрагентов.ПустаяСсылка();
Иначе
НайденныйДоговорОбъект.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.Прочее;
КонецЕсли;
НайденныйДоговорОбъект.Записать();
. /////////////////////ОШИБКА:Вид договора «С поставщиком» может устанавливаться только когда у контрагента указано что он является поставщиком.
. ////////////////////////////////////////
ОсновнойДоговорКонтрагента = НайденныйДоговорОбъект.Ссылка;
НовыйОсновнойДоговорУказан = Истина;
Записываю элемент так:
НовыйКонтрагент=Справочники.Контрагенты.СоздатьЭлемент();
НовыйКонтрагент.Родитель=Родитель;
НовыйКонтрагент.Наименование=Зн;
НовыйКонтрагент.НаименованиеПолное=Зн;
НовыйКонтрагент.ЮрФизЛицо=Перечисления.ЮрФизЛицо.ЮрЛицо;
НовыйКонтрагент.Поставщик=Истина;
НовыйКонтрагент.НаименованиеПолное=Зн;
НовыйКонтрагент.Записать();
Состояние(«Записано «+Ы+» Контрагентов»);
НовыйОсновнойДоговорУказан = Ложь;
ПроверитьОсновнойДоговорКонтрагента(НовыйКонтрагент, НовыйОсновнойДоговорУказан);
Происходит ошибка: Вид договора «С поставщиком» может устанавливаться только когда у контрагента указано что он является поставщиком.
в процедуре ПередЗаписью() формы справочника.
Как это правильно сделать?
Заранее спасибо.
Редактирование и создание договоров с помощью шаблонов (новые возможности «1С:Бухгалтерии 8») + видео
Чтобы подписать договор с контрагентом, о нем нужно иметь такие сведения как ИНН и КПП, адрес, реквизиты банковских счетов и фамилии уполномоченных лиц. Не так давно в «1С:Бухгалтерии 8» появилась возможность формировать все необходимые реквизиты организации для вывода на печать или для отправки в электронной форме. Но это не все способы использования реквизитов контрагентов. Релиз 3.0.37.21 позволяет формировать тексты договоров непосредственно в «1С:Бухгалтерии 8» ред. 3.0 с использованием имеющихся реквизитов организации. О том, как работает новая возможность, читайте в материале экспертов 1С.
Для просмотра и редактирования уже имеющихся шаблонов необходимо открыть их список в разделе Справочники и группе Покупки и продажи (рис. 1).
Рис. 1. Шаблоны договоров в разделе Справочники
В типовой поставке присутствуют шаблоны трех видов договоров (рис. 2).
Рис. 2. Три вида договоров
Открыв любой из шаблонов, вы попадаете в конструктор текста (рис. 3). В нем можно редактировать уже имеющийся текст, для чего в командной панели есть все привычные пиктограммы текстовых редакторов. Кроме того, в тексте желтым цветом выделены шаблоны, позволяющие получать нужные значения из данных, содержащихся в программе – таких, например, как Полное наименование Организации и т.п. Такие конструкции могут быть вставлены в нужные места шаблона – с помощью кнопки Вставить в текст (рис. 4), или заменить уже имеющиеся.
Рис. 3. Редактирование шаблона договора поставки
Рис. 4. Добавление в текст имеющихся реквизитов с помощью кнопки Вставить в текст
Шаблоны можно не только редактировать, но и создавать новые, в том числе, взяв за основу уже имеющиеся. Для этого нужно лишь щелкнуть по кнопке Создать и выбрать в качестве основания один из трех имеющихся шаблонов и внести необходимые изменения в текст, либо создать свой шаблон с нуля.
Каким образом используется шаблон договора? К нему можно обратиться из формы элемента справочника Договоры, который в свою очередь открывается обычным путем (рис. 5,6).
Рис. 5. Справочник «Контрагенты»
Рис. 6. Справочник Договоры
И уже в открытой форме элемента справочника Договоры можно обратиться по кнопке Договор к списку шаблонов договоров для выбора и, выбрав нужный шаблон, получить макет печатной формы договора. Его следует внимательно проверить, при необходимости внести изменения (например, изменить падеж должности и фамилии руководителя), после чего воспользоваться кнопками Печать, Сохранить, Отправить (рис. 7).
Рис. 7. Кнопки Печать, Сохранить и Отправить в шаблоне договора
Таким образом, создание печатной формы нового типового договора облегчается в разы и становится удобным как для бухгалтера, так и для руководителя: достаточно урегулировать с юристами текст договора, ввести его в список шаблонов, после чего добавить нового контрагента, его реквизиты, номер и дату договора, а затем сформировать текст для вывода на печать и сохранения в электронной форме. При необходимости ввести в список авторизованных пользователей информационной базы можно юриста организации или сотрудника коммерческого отдела, предоставив доступ только к пакету необходимых объектов для создания договоров.
На момент написания данного материала возможность работы с шаблонами договоров добавлена в типовую конфигурацию «1С:Бухгалтерия 8» версии КОРП, в версии ПРОФ она появится с выходом очередного релиза.
8.3 БП. Как программно вытащить основной договор контрагента?
Перестала работать обработка. Полез разбираться. В справочнике Контрагенты реквизит ОсновнойДоговор переименован в УдалитьОсновнойДоговор.
В справочнике ДоговорыКонтрагентов также нет соответствующего поля.
В конфигурации теперь можно отметить «Использовать как основной» произвольное количество договоров.
Не понятно и неудобно.
Поясните, пожалуйста, в чем логика и как теперь жить).
Как отметить договор программно «Основным», как выбрать основной договор?
1С:Предприятие 8.3 (8.3.7.1790)
Бухгалтерия предприятия, редакция 3.0 (3.0.43.29)
(2) Xershi, Контрагент=Справочники.Контрагенты.НайтиПоКоду(Код);
НайденныеСтроки = НовыйДокумент.Контрагент
.
НоваяСтрока = НовыйДокумент.РасшифровкаПлатежа.Добавить();
//НоваяСтрока.ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента;
НоваяСтрока.ДоговорКонтрагента= РегистрыСведений.ОсновныеДоговорыКонтрагента.ПолучитьПервое(. а тут не соображу(((((;
(1) JLaikova, а так не сработает?
(13) config,
НоваяСтрока = НовыйДокумент.РасшифровкаПлатежа.Добавить();
ВидДоговора = Новый СписокЗначений;
ВидДоговора.Добавить(Перечисления.ВидыДоговоровКонтрагентов.СПокупателем);
ЗаполнениеДокументов.ПриИзмененииЗначенияКонтрагента(НовыйДокумент,ВидДоговора);
ДОговорКонтрагента = ВидДоговора;
//НоваяСтрока.ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента;
НоваяСтрока.ДоговорКонтрагента = ВидДоговора;
(16) JLaikova, ну там типовая функция есть, которая заполняет именно в ТЧ Расшифровка платежа
МассивВидовДоговоров = Новый Массив;
МассивВидовДоговоров.Добавить(ДоговорКонтрагента);
НайденДОговор = Ложь;
РаботаСДоговорамиКонтрагентовБП.УстановитьДоговорКонтрагента(НовыйДокумент.ДоговорКонтрагента, НовыйДокумент.Контрагент, НовыйДокумент.Организация, МассивВидовДоговоров);
Если НовыйДокумент.ДоговорКонтрагента <> Справочники.ДоговорыКонтрагентов.ПустаяСсылка() Тогда
НайденДоговор = Истина;
КонецЕсли;
//НоваяСтрока.ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента;
Если НайденДоговор=Истина Тогда
НоваяСтрока.ДоговорКонтрагента=НовыйДокумент.ДоговорКонтрагента;
//Иначе
// НоваяСтрока.ДоговорКонтрагента= НовДок.ДоговорКонтрагента.ВидДоговора.Пустая();
КонецЕсли;
Вот может кому пригодится. Решение нашлось! Всем спасибо за участие.
Программное изменение договора
Запрос = Новый Запрос;
Запрос.Текст = «ВЫБРАТЬ
|ПоступлениеНаРасчетныйСчет.Ссылка,
|ПоступлениеНаРасчетныйСчет.Организация,
|ПоступлениеНаРасчетныйСчет.Контрагент,
|ПоступлениеНаРасчетныйСчет.ДоговорКонтрагента КАК Дог,
|ПоступлениеНаРасчетныйСчет.ДоговорКонтрагента.Организация КАК ДогОрг,
|ПоступлениеНаРасчетныйСчет.ДоговорКонтрагента.Ссылка КАК ДогСсылкса,
|ПоступлениеНаРасчетныйСчет.Организация.Ссылка КАК ОргСсылка
|ИЗ
|Документ.ПоступлениеНаРасчетныйСчет КАК ПоступлениеНаРасчетныйСчет»;
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(«Документ»);
Если ЗначениеЗаполнено(Выборка.Дог) И Выборка.Организация <> Выборка.ДогОрг Тогда
Сообщить(«Расхождение»);
Док = Выборка.Ссылка.ПолучитьОбъект();
ЗапросДог = Новый Запрос;
ЗапросДог.УстановитьПараметр(«Контрагент», Док.Контрагент);
ЗапросДог.УстановитьПараметр(«Организация», Док.Организация);
ЗапросДог.УстановитьПараметр(«Вид», Перечисления.ВидыДоговоровКонтрагентов.СПокупателем);
ЗапросДог.Текст = «ВЫБРАТЬ
|ДоговорыКонтрагентов.Ссылка,
|ДоговорыКонтрагентов.Организация,
|ДоговорыКонтрагентов.Владелец,
|ДоговорыКонтрагентов.Наименование
|ИЗ
|Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
|ГДЕ
|ДоговорыКонтрагентов.Организация = &Организация
|И ДоговорыКонтрагентов.Владелец = &Контрагент
|И ДоговорыКонтрагентов.ВидДоговора = &Вид»;
ВыборкаДог = ЗапросДог.Выполнить().Выбрать();
Если ВыборкаДог.Следующий() Тогда
Сообщить(«Есть совпадение»); Сообщить(Док);
Док.ДоговорКонтрагента = Неопределено;
Док.ДоговорКонтрагента = ВыборкаДог.Ссылка;
Док.Записать();
Если Док.ДоговорКонтрагента.Организация = Док.Организация Тогда
Сообщить(«Произведена замена»);
КонецЕсли;
КонецЕсли;
Конецесли;
КонецЦикла;
Как создавать договоры с контрагентами в 1С Бухгалтерия 8.3
Как в программе 1С Бухгалтерия 8.3 создавать договоры с контрагентами.
Мы с вами посмотрим, как формируются эти объекты конфигурации договора в программе.
Переходим в раздел справочники, контрагенты.
Открываем карточку того контрагента, с которым мы хотим сформировать договор.
Например, в нашем случае ООО «Покупатель». Нажимаем кнопку создать.
В этой карточке наверху есть ссылочка договоры (нажимаем).
Мы попадаем в справочник договоров конкретно с этим контрагентом. Как видите он у нас пустой, так как мы ни одного договора не создавали.
Давайте создадим два вида договоров с этим контрагентом. Нажимаем кнопку создать.
Далее заполняется срок оплаты, если вы хотите вести такой учет.
Информация по НДСу, если вы работаете с НДСом.
Также подписи представителей контрагента и организации, которые будут стоять в документах, созданных с использованием этого договора.
Заполнили все реквизиты. Далее нажимаем кнопку записать и закрыть.
Программа записала наш договор в справочник договоров с покупателем.
Если он является у нас еще и поставщиком, мы создали договор с поставщиком.
Создаем новый договор уже как с покупателем.
Далее нажимаем кнопку записать и закрыть.
Программа сможет учитывать взаиморасчеты с этим контрагентом. Надо обратить внимание на то, что в программе включен интеллектуальный фильтр, с помощью которого программа может вам помогать в выборе документа, чтобы вы не совершили ошибки. Если мы будем делать документ реализации для нашего контрагента, нажимаем кнопку продажи, реализация (акты, накладные).
Далее нажимаем реализация, товары (накладная).
Программа автоматически выбрала договор поставки. Нажимаем показать все.
Если мы посмотрим все договоры, которые у нас есть с этим контрагентом, то сможем увидеть, что программа не видит договор с ним, как с поставщиком. Тем самым программа помогает нам избежать ошибочного выбора неправильного вида договора в документе. То есть в документе реализации мы никогда не сможем выбрать договор с контрагентом, как с поставщиком, только как с покупателем.