Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: помогите заполнить номер договора програмно
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
4andriy
Платформа 1с 7.7 Форт: 2000 3.89

При выписывании счета у меня формируеться номер - например Счет 54. Как сделать что-бы при исполнении процедуры формирования документа номер счета записывался в карточку контрагента в раздел договора - номер договора вместе с датой. Вот что написал, но не работает:

Процедура Сформировать()
ДоговорНомер=НомерДок; // номер договора = номеру счета
ДоговорДата=ДАтадок; // дата договора = дата счета
ИзмДоговор(); // запись параметров в карточку контрагента
Ardi
Какие типы данных хранятся в карточке контрагента в разделе договор?
laugh.gif laugh.gif laugh.gif laugh.gif laugh.gif laugh.gif
Pepe
Глупость, как по-мне. Выписано 10 счетов, а договор в карточке только один. Какой из них надо вклеить в карточку?
4andriy
Справочники - Контрагенты:

ОсновнойДоговор

Справочники - Договора:

ДатаНачала
Номер

Их и надо заполнить
logist
4andriy, у Вас в профиле указано:
Уровень знаний 1С: Что такое 1С?
Уровень знаний компьютера: Чайник

Может быть стоит пригласить специалиста?
4andriy
Нужно что-бы при выписывании счета номер договора был по посленему номеру счета...

Цитата(logist @ 25.07.11, 13:35) необходимо зарегистрироваться для просмотра ссылки
4andriy, у Вас в профиле указано:
Уровень знаний 1С: Что такое 1С?
Уровень знаний компьютера: Чайник

Может быть стоит пригласить специалиста?


Ну в общем я работаю на уровне системного администратора - 1с установил, настроил, сделал формы, правлю код, а вот с справочником не могу разобраться
Ardi
Духи земли мне подсказывают что на самом деле нужно чтобы при печати налоговой накладной выводилась дата счета.
4andriy
И дата и номер счета, но как-то более хирургически прописать счет и дату в справочник контрагента

Тоесть при формировании счета вставляем код для обновления номера договора - и тогда все должно быть ОК
Ardi
Цитата(4andriy @ 25.07.11, 14:02) необходимо зарегистрироваться для просмотра ссылки
И дата и номер счета, но как-то более хирургически прописать счет и дату в справочник контрагента

Тоесть при формировании счета вставляем код для обновления номера договора - и тогда все должно быть ОК

В налоговую накладную?
4andriy
1. выписываем счет
2. нажимаем кнопку печать сформировать() (перед тем вставляем нужный код ------ счет = номер договора, дата договора = дата счета)
3. если все правильно в карточке контрагента уже проставлен номер договора и дата - номер дог. обновляеться каждый раз при печати счета
4. дальше уже обычная работа
Ardi
Зачем?
4andriy
такая стоит задача
номер договора = номер счета :-) и в карточку... а я програмно это осилить не могу smile.gif можно вручную ставить но это не выход
Ardi
а если выписываем сразу 3 счета одному контрагенту?
logist
Цитата(4andriy @ 25.07.11, 14:29) необходимо зарегистрироваться для просмотра ссылки
а я програмно это осилить не могу smile.gif

Повторюсь, обратитесь к специалисту, или в наш необходимо зарегистрироваться для просмотра ссылки.
Здесь готовый код писать никто не будет. Мы только отвечаем на вопросы.
endru
Может в форте договора в виде подчиненного справочника? biggrin.gif
Если нет, то конечно глупая постановка задачи.
Pepe
Я так понял, что вся затея из-за того, что надо заполнить в налоговую накладную номер договора и его дату. Я уже писал, что затея ничтожная, т.к. при отсутствии договора (устный договор) заполняется только дата, а номер остается пустым. Зачем создавать для каждого счета свой договор со своей датой? - договор должен быть один для разных поставок (базовый договор). Возможно в Форте есть подчиненный справочник договоров, но заполнять его тысячами (по количеству выписанных счетов) глупо. Т.к. вы системный администратор, не бухгалтер и не 1с-ник, обьясните руководству ущербность этой идеи.
4andriy
Дорогие специалисты так давайте хотя-бы дату из счета подставим в договор:

 
Процедура Сформировать()
ДоговорДата=Датадок; // дата договора = дата счета
ИзмДоговор(); // запись параметров в карточку контрагента


Просто подскажите где копать... я ж не спец по 1с - может ошибка в моем коде какая-то... ну не работает...!

Выходит я могу присвоить значение:

Договор.Номер=100; // или какой-то переменной

Но в поле контрагента оно записи не делает...

Ну как сделать запись в справочник значения через процедуру? smile.gif аааааааааа
Pepe
С Фортом не работал, но для решения задачи необходимо знать структуру и подчинение справочников. В свойствах справочника контрагенты подскажите тип значения реквизита БазДоговор. Если это другой справочник надо копать туда.
4andriy
Есть отдельный справочник: Договора - в нем реквизит - ДатаНачала (тип <<Дата>>)
Pepe
Цитата(4andriy @ 25.07.11, 21:02) необходимо зарегистрироваться для просмотра ссылки
Есть отдельный справочник: Договора - в нем реквизит - ДатаНачала (тип <<Дата>>)

Как он связан со справочником Контрагенты и его реквизитом БазДоговор. Справочник Договора кому подчинен?
4andriy
если заполнить справочник то эти поля отображаються в форме:

Договор.Номер
Договор.ДатаНачала

Идентификатор Договора
Подчинен Контрагенты
Ardi
Была не была. Если договор уже у контрагента задан то :
Если ПустоеЗначение(контрагент.ОсновнойДоговор)=0 ТОгда  
спр=создатьОбъект("справочник.договора");
спр.НайтиЭлемент(контрагент.ОсновнойДоговор);
спр.ДатаНачала = док.ДатаДок;
спр.Номер = док.НомерДок;
спр.Записать();
КонецЕсли;
Pepe
Если справочник Договора подчинен справочнику Контрагенты, там может быть не один договор для контрагента, а множество. Надо будет или выбирать из списка или первый попавшийся для заполнения НН.
В тексте модуля справочника Контрагенты можно подсмотреть обращение к справочнику Договора.
Примерно надо искать СоздатьОбъект("Справочник.Договора")...
4andriy
x
4andriy
В общем спасибо!

Пиво полетело проводами его обдалателю! smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.