Как сделать один документ подчиненным другому?

Чтобы реализовать механизм подчиненности, надо чтобы в подчиненном документе был реквизит типа “Документ”. При этом если заранее известно, какой именно вид документов будет владельцем, лучше сразу конкретизировать тип реквизита.
Это может быть реквизит шапки или табличной части документа. Если в документе несколько реквизитов типа “Документ”, то он может быть подчинен сразу нескольким документам-владельцам.
Заполнить этот реквизит можно обычными способами. Однако чаще всего используется уже упомянутая предопределенная процедура ВводНаОсновании(). Она должна быть размещена в модуле формы подчиненного документа. Как правило именно в ней и происходит присваивание реквизиту, отвечающему за подчиненность, значения, которое передается как параметр этой процедуре.
Предположим, что специальный реквизит в Счет-фактуре называется у нас “ДокОснование”. Тогда в модуле формы Счета-фактуры должна быть такая процедура:

Процедура ВводНаОсновании(Докум)
ДокОснование = Докум;
КонецПроцедуры

Иными словами, документ является “хозяином” всех документов, в которых он фигурирует в качестве значения какого-либо реквизита вида “Документ”.

Комментарии | опубликовано: 26 Июль 2007, 19:12

Жалуется мне бухгалтер: очень сложно выбрать договор у контрагента, когда ручную проводку делаешь: уж слишком много этих договоров, и все одинаковые...

Выключен иерархический список, т.е. несмотря на выбранного владельца в списке показываются все договора контрагентов.
А чтобы такого не случалось, надо добавить в процедуру ПриОткрытии() формы списка справочника Договоры такую строчку:
ИерархическийСписок(1,0);
Это значит, что иерархический список установлен, и отменить его руками пользователь не сможет.

Комментарии [2] | опубликовано: 26 Июль 2007, 19:10

При проверке синтаксиса или при загрузке конфигурации программа "ругается" на "слишком длинную строку" в Глобальном модуле...

Причина ошибки известна – попытка скомпилировать модуль в конфигурации, исправленной на более старшем релизе исполняемого файла, чем текущий. Например, если конфигурацию открыть и отредактировать с помощью 17 релиза 1cv7.exe, а потом открыть с помощью 4, то получим эту ошибку.
Существует интересное следствие этой ошибки: при запуске конфигурации Глобальный модуль не компилируется, но конфигурация не закрывается. В ней не доступны все глобальные функции и переменные, не выполнена процедура ПриНачалеРаботыСистемы(), но справочники и документы посмотреть можно.
Этот факт делает бесполезными попытки ограничить доступ к данным с помощью авторизации в обработках, запускаемых при старте конфигурации.

Комментарии | опубликовано: 25 Июль 2007, 17:29


<--- Предыдущая страница Следующая страница --->