Затем создадим процедуру обработки события «ПриИзменении» переключателя, в которой, в зависимости от установленного значения переключателя, будем изменять свойство ТипЗначения табличного поля:
ПроцедураОстаткиМатериаловПриИзменении(Элемеит)
Если ОстаткиМатериалов = "Остатки" тогда
НужныйТип = Тип("РегистрНакопленияСписок. ОстаткиМатериалов"); ИначеЕсли ОстаткиМатериалов = "Стоимость" тогда
НужныйТип = ТипС'РегистрНакопленияСписок. СтоимостьМатериалов"); ИначеЕсли ОстаткиМатериалов = "Продажи" тогда
НужныйТип = Тип("РегистрНакопленияСписок. Продажи"); КонецЕсли;
Массив = Новый Массив();
Массив. Добавить(НужныйТип);
НашеОписание = Новый ОписаниеТипов(Массив);
ТабПоле = ЭлементыФормы. ТабличноеПоле; ТабПоле. ТипЗначения = НашеОписание; ТабПоле. СоздатьКолонки();
НашОтбор = ТабПоле. Значение. Отбор;
ЗначениеОтбора = ЭлементыФормы. ДокументСписок. ТекущаяСтрока; НашОтбор. Регистратор. УстановитьСЗначениеОтбора, Истина); КонецПроцедуры
Теперь осталось только создать обработчик события хПриАктивизацииСтроки» табличного поля «ДокументСписок»:
ПроцедураДокументСписокПриАктивизацииСтроки(Элемент)
НашОтбор = ЭлементыФормы. ТабличноеПоле. Значение. Отбор; Если Элемент. ТекущиеДанные = Неопределено Тогда
НашОтбор. Регистратор. Установить(, Истина); Иначе
НашОтбор. Регистратор. Установить(Элемент. ТекущаяСтрока, Истина); КонецЕсли; КонецПроцедуры
В этой процедуре мы просто управляем отбором нижнего табличного поля в зависимости от содержимого верхнего поля.
Запустите 1С:Предприятие и проверьте работу списка документа «ОказаниеУслуги».
Действия, выполняемые этой процедурой, аналогичны предыдущей, за исключением того, что ОписаниеТипов мы формируем исходя из положения переключателя, и отбор устанавливаем по значению ссылки на документ, выделенный в верхнем табличном поле «ДокументСписок».
522
523
Специальные приемы разработки
Формы



![]()


Вычисляемые колонки в списках
Н |
еобходимость вывода произвольных данных в колонках списка возникает, когда вместе с элементом списка нужно отобразить некоторую вычисляемую информацию.
Мы рассмотрим эту ситуацию на примере отображения актуальной цены в списке справочника «Номенклатура».
Откроем в конфигураторе форму списка справочника «Номенклатура» (или, если ее нет, создадим основную форму списка). Воспользуемся контекстным меню правой кнопки мыши и добавим в табличное поле колонку с именем и текстом шапки «Цена»:
В табличное поле списка справочника Номенклатура добавим колонку Цена...

Создадим обработчик события табличного поля «При выводе строки», и добавим в него следующий текст:
Процедура СправочникСписокПриВыволеСтроки(Элемент, ОформлениеСтр(
ДанныеСтроки)
//для элементов отобразим цену и ...
Если Не ДанныеСтроки. ЭтоГруппа тогда ОтборНоменклатуры = Новый Структура; ОтборНоменклатутш. ВставитьС'Номенклатура", ДанныеСтроки.Ссылка);
ОформлениеСтроки. Ячейки. Цена. ОтображатьТекст = Истина; АктуальнаяЦена = РегистрыСведений. Цены
.ПолучитьПоследнее(, ОтборНоменклатуры. Цена; ОформлениеСтроки. Ячейки. Цена. Текст = АктуальнаяЦена;
//низкие цены выделим другим цветом Если АктуальнаяЦена<500 тогда
ОформлениеСтроки. Ячейки. Цена. ЦветТекста = WEBЦвета. Васильковый; КонецЕсли; КонецЕсли; КонецПроцедуры
Обработчик события табличного поля «При выводе строки» передает три параметра: «Элемент» - само табличное поле, для которого было вызвано это событие, «ОформлениеСтроки» - объект, содержащий оформление выводимой строки табличного поля и «ДанныеСтроки» - элемент выборки справочника «Номенклатура», отображаемый в выводимой строке.
Первое, что мы делаем в этом обработчике - проверяем, что выводимый элемент справочника не является группой. В этом случае мы создаем вспомогательную структуру для описания отбора («ОтборНоменклатуры») и помещаем в ячейку «Цена» актуальное значение цены, полученной из периодического регистра сведений «Цены».
Затем мы анализируем значение выведенной цены и если оно находится в нижнем ценовом диапазоне (менее 500 рублей), выделяем это значение васильковым цветом. Для указания цвета мы используем системный набор значений WEBL4BeTa.
Запустим 1С:Предприятие в режиме отладки и посмотрим, какой внешний вид примет теперь справочник «Номенклатура»:

524
525
^^v
Специальные приемы разработки
Формы




При использовании обработчика события «При выводе строки» нужно быть крайне внимательным и всегда стараться минимизировать обращения к данным, которые не содержатся в параметре «ДанныеСтроки».
Дело в том, что обработчик этого события вызывается каждый раз при возникновении необходимости перерисовки видимой области табличного поля и отрабатывает столько раз, сколько строк содержит видимая область. Необходимость перерисовки видимой области табличного поля возникает в результате многих событий, связанных как с самим табличным полем, так и с формой. Если проанализировать работу обработчиков событий формы и табличного поля, можно увидеть, что простое добавление новой строки в табличное поле вызовет, скорее всего, не одну, а несколько перерисовок табличного поля.
Поэтому обращение в этом обработчике не к данным строки, а к данным, содержащимся в базе данных (получение значений через точку, обращение к итогам регистров и т. д.), может сильно замедлить вывод формы на экран. Возможно, в некоторых случаях следует отказаться от создания вычисляемых колонок в списках, и выводить вычисляемые данные только для текущей строки списка в дополнительные поля, расположенные на форме.
Оформление строк табличного поля
О |
дним из полезных свойств элемента управления «Табличное поле» является возможность настройки оформления его строк программным способом.
Для иллюстрации этой возможности мы снова воспользуемся формой справочника «Номенклатура» и придадим ей «нестандартный»
вид.
Откроем в конфигураторе форму списка справочника «Номенклатура» и создадим обработчик события формы «При открытии» со следующим текстом:
Процедура ПриОткрытии()
СписокСправочника = ЭлементыФормы. СправочникСписок;
//задать режим чередования цветов строк
СписокСправочника. ЦветФонаЧередованияСтрок = WЕВЦвета. Бежевый; СписокСправочника. ЧередованиеЦветовСтрок = Истина;
//скрыть линии сетки
СписокСправочника. ВертикальныеЛинии = Ложь; СписокСправочника. ГоризонтальныеЛинии = Ложь; КонецПроцедуры
Вначале мы задаем режим чередования цветов фона строк списка. Первая строка будет выводиться на бежевом фоне, вторая на белом, третья снова на бежевом и т. д.
Затем мы скрываем линии разделяющие колонки и строки.
Теперь откроем обработчик события «ПриВыводеСтроки» табличного поля списка справочника, и добавим в него следующие строки:
Процедура СправочиикСписокПриВыводеСтроки(Элемент, ОформлениеСтрокн,
ДанныеСтроки) //для элементов отобразить цену и...
Если Не ДанныеСтроки. ЭтоГруппа тогда ОтборНоменклатуры = Новый Структура;
ОтборНоменклатуры. Вставить("Номенклатура\ДанныеСтроки. Ссьшка);
ОфорилениеСтроки. Ячейки. Цена. ОтображатьТекст = Истина;
АктуальнаяЦена = РегистрыСведений. Цены
_ _________________ .ПолучитьПоследнее(, ОтборНоменклатурыЩена;______
526
527
Специальные приемы разработки



ОформлениеСтроки. Ячейки. Цена. Текст = АктуальнаяЦена;
//низкие цены выделим другим цветом
Если АктуальнаяЦена<500 тогда
ОформлениеСтроки. Ячейки. Цена. ЦветТекста = WЕВЦвета. Васильковый; КонецЕсли;
//... раздвинуть строку если длинное наименование
Если СтрДлина(СокрЛП(ДанныеСтроки. Наименование))>30 Тогда ОформлениеСтроки. Ячейки. Наименование. АвтоВысотаЯчейки = Истина; ОформлениеСтроки. Ячейки. Наименование. ВысотаЯчейки = 3; КонецЕсли; КонецЕсли; КонецПроцедуры
Часть IV. Краткий справочник разработчика
Заключительная часть нашей книги содержит набор кратких справочных статей и описаний групп обьектов встроенного языка используемых для работы с теми или иными данными базы данных '
Здесь, в случае вывода элемента справочника, мы анализируем длину его наименования и для наименований более 30 символов устанавливаем автоматическое определение высоты ячейки, ограничивая ее максимальную высоту тремя строками.
Запустим 1С:Предприятие в режиме отладки и посмотрим на результат:
|

528
529
Стандарты именования переменных, процедур и объектов конфигура

Стандарты именования переменных, процедур и объектов конфигурации
Ф |
ирма «1С» использует ряд стандартов, регламентирующих порядок разработки типовых конфигураций на платформе «1С:Предприятие 8.0». В этой главе мы дадим некоторые выдержки из этих стандартов, которые касаются формирования имен объектов конфигурации, переменных, процедур, функций, элементов управления и т. д.
Правила образования имен переменных
И |
мена переменных (параметров) следует образовывать от терминов предметной области. При именовании переменных следует использовать только термины, используемые в документации к 1С:Предприятию 8.0 или в методических материалах фирмы «1С» по 1С:Предприятию 8.0.
Из имени переменной должно быть понятно ее назначение. Имена следует образовывать путем «склеивания» слов - удаления пробелов между словами. Каждое отдельное слово в «склеенном» имени пишется с прописной буквы. Предлоги и местоимения из одной буквы также пишутся прописными буквами.
Например:
работа с каталогом - РаботаСКаталогом
количество пачек в коробке - КоличествоПачекВКоробке
Имена переменных не следует начинать с подчеркивания.
Имена переменных ни в коем случае не должны состоять из одного символа. Использование коротких имен переменных допускается только для счетчиков циклов.
Именование переменных-флагов
В |
процедурах периодически используются переменные, которые содержат в себе некий флаг. Такие переменные следует называть так, как называется истинное значение этого флага.
Например, если нужна переменная, в которой хранится признак наличия ошибок в процедуре, то такая переменная должна называться «ЕстьОшибки». Или если есть признак того, что товар относится к возвратной таре, то такой признак должен называться «ЭтоТара».
Правила образования имен процедур (функций)
И |
мена процедур в общем случае, следует образовывать от глаголов неопределенного вида, например:
правильно ПроверитьДублиСтрок(), неправильно ПроверкаДублейСтрок();
правильно ЗагрузитьКонтрагента(), неправильно ЗагрузкаКонтрагента().
Имена процедур и функции должны давать представление о характере выполняемых процедурой (функцией) действий.
Примеры хороших имен: ПроверитьДублиСтрок(), ПодобратьВидРасчета(), ПолучитьИнформациюОПроводке()
Примеры плохих имен:
OK(), Есть(), ЕщеФлажки(), НамПодходит().
530
531
Краткий справочник разработчика
^Стандарты именования переменных, процедур и объектов конфигуряни,,


Именование функций-флагов
Ф |
ункции, которые предназначены для проверки чего-либо, и возвращают в качестве результата проверки булево значение, следует именовать так, как называется результат проверки, имеющий тип Истина.
Например, если функция должна проверить наличие дублей строк в табличной части документа, то она должна называться «ЕстьДублиСтрок». Или если функция должна проверить принадлежность документа к накладным, то она должна называться «ЭтоНакладная».
Однако, если функция (или процедура) «ЕстьДублиСтрок» и проверяет наличие дублей строк, и выполняет объединение дублирующих строк, при этом не возвращает значения, ее следует именовать «СвернутьДублиСтрок».
Имена обработчиков событий
И |
спользуются имена процедур - обработчиков событий, формируемые системой автоматически:
<имя элемента управления> + <название события>
Имена по умолчанию формируются при нажатии «лупы» около события в окне свойств реквизита диалога.
По таким же правилам следует образовывать имена обработчиков самостоятельно.
Правила образования имен элементов управления
Имена надписей образуются по следующим правилам:
• - если надпись относится к элементу управления, имя
составляет как «Надпись»+ ИмяЭлементаУправления;
• - в остальных случаях им составляется как
«Надпись»+ИмяНадписи.
Для именрамок используется префикс «Рамка». Для командной панели формы используется префикс «КоманднаяПанель».
Для имен командных панелей табличных частей формы используется префикс «КоманднаяПанель»+ИмяТабличнойЧасти, например, «КоманднаяПанельСпецификация».
Элементы управления, связанные с данными, называются так же, как данные.
Общие требования к имени объекта конфигурации
И |
мя объекта надо стремиться строить на основе синонима объекта так, как это делает система автоматически: пробелы и пр. недопустимые символы удаляются, первые буквы слов делаются заглавными. Сокращения слов (относительно синонима) допускаются только в крайних случаях, при этом необходимо, чтобы по сокращению можно было восстановить слово обратно. В случае длинных синонимов последние слова могут быть опущены, ели это не искажает смысла.
Для реквизитов объектов допускается переставлять слова из синонима местами, например: синоним «Полное наименование», имя «НаименованиеПолное».
Для ведущих объектов подобное не допускается.
Общие требования к синониму объекта конфигурации
С |
иноним объекта должен быть определен так, чтобы осмысленно описывать объект. Сокращения допускаются только общепринятые, например, «ОКЕИ», «ИНН». Следует избегать излишне длинных синонимов, но и укорачивать их с потерей смысла тоже плохо. Синоним начинается с большой буквы, точки ставятся только после сокращений.
Для ведущих объектов метаданных необходимо стремиться к тому, чтобы название объекта в меню, подпись в диалоговых формах совпадали с синонимом или, как минимум, начинались с него.
Для реквизитов объектов подписи в диалогах могут отличаться «в силу обстоятельств» - синоним надо подбирать так, чтобы он осмысленно описывал реквизит в возможных универсальных формах.
Для форм синоним должен начинаться со слов, генерируемых конструктором при создании формы («Форма списка...», «Форма элемента...» и т. д.), далее, в случае наличия нескольких форм одного

532
533
Краткий справочник разработчика
назначения, обязательно должно следовать уточнение, например «Форма элемента полная», «Форма элемента упрощенная».
Для макетов унифицированных форм синоним должен состоять из названия формы, например: «ТОРГ-12».
Общие требования к комментарию объекта конфигурации
К |
омментарий задается только в тех случаях, когда необходимы какие-либо пояснения. Комментарий начинается с большой буквы, точки ставятся только после сокращений. Если в синониме использовано сокращение, в комментарии необходимо его расшифровать, например: «Общероссийский классификатор единиц измерения».
Для реквизитов объектов в комментариях в необходимых случаях должно содержаться уточнение, например: «Сумма со всеми налогами».
Немного о конфигурациях
П |
ри первом знакомстве с системой 1С:Предприятие может возникнуть естественный вопрос: если у нас есть две конфигурации: одна, которую можно редактировать, и другая, с которой работают пользователи, то почему же тогда основной называется редактируемая конфигурация? Ведь с точки зрения конечного продукта, основной является именно конфигурация, с которой работают пользователи!
Дело в том, что в данном случае название «основная» дано с точки зрения разработчика и это имеет глубокий практический смысл.
В общем случае информационная база 1С:Предприятия хранит три конфигурации: основную конфигурацию, конфигурацию базы данных и несколько конфигураций поставщиков. Кроме этого вне информационной базы может существовать хранилище, в котором находится конфигурация, предназначенная для групповой разработки, и вне информационной базы может существовать некоторое количество файлов конфигураций, в том числе файлы новой поставки.
|


534
535
Краткий справочник разработчика

Конфигурация поставщика, находящаяся в информационной базе содержит предыдущее состояние поставки. Возможна ситуация, когда конфигурация находится на поддержке одновременно у нескольких поставщиков, каждый из которых поддерживает только свою часть в виде отдельной конфигурации. В этом случае информационная база будет хранить несколько конфигураций поставщиков (состояние предыдущей поставки для каждого поставщика отдельно).
Файлы новой поставки могут существовать в виде файлов конфигураций (полная поставка) и файлов обновлений (поставка обновлений).
Хранилище конфигурации содержит конфигурацию,
предназначенную для групповой разработки. Эта конфигурация хранится не в виде единой конфигурации, а в виде отдельных объектов в разрезе версий конфигурации. Таким образом, мы можем получить из хранилища конфигурацию любой версии - для этого она «собирается» из объектов нужной версии.
Теперь представьте, что между всеми этими видами конфигураций существует возможность сравнения и обновления конфигураций. В этом случае очень легко запутаться и название Основная конфигурация как нельзя лучше отражает конечную цель всех изменений.
Объекты, объекты, объекты...
Ч |
то такое объект, применительно к 1С? Этот вопрос зачастую ставит в тупик не только начинающих разработчиков, но и людей, имеющих определенный опыт разработки на платформе 1С.
Основная трудность заключается в том, что всегда нужно ясно представлять себе, в каком контексте употребляется этот термин.
Как правило, термин объект употребляется в одном из трех контекстов:
• конфигурация,
• база данных,
• встроенный язык,
Говоря о конфигурации, термином объект конфигурации мы обозначаем некоторую совокупность описания данных и алгоритмов работы с этими данными. Например, в конфигурации может существовать объект справочник «Сотрудники».
На основании каждого объекта конфигурации в базе данных создается информационная структура, в которой будут храниться данные.
Так вот, когда мы говорим о базе данных, термином объект мы обозначаем всего лишь некий элемент такой информационной структуры. Характерной особенностью такого элемента является то, что на него (как на совокупность данных) существует ссылка, которая может являться значением какого либо поля другой информационной структуры.
Например, в базе данных существует справочник «Сотрудники» в котором есть сотрудник Иванов. В этом случае элемент справочника, содержащий информацию о сотруднике Иванов, будет являться объектом базы данных. И если в документе «ПриходнаяНакладная» будет существовать реквизит «ОтветственноеЛицо», то тип значения этого реквизита будет ссылка на объект базы данных, т. е. на элемент справочника, содержащий информацию об Иванове.
Если же мы начинаем говорить о встроенном языке и о том, каким образом средствами встроенного языка работать со справочниками, то
536
537
Краткий справочник разработчика

термином объект мы обозначаем тип данных, позволяющий получить доступ к данным и обладающий набором свойств и методов.
|
Существует целый ряд объектов встроенного языка, позволяющих работать со справочниками (СправочникиМенеджер СправочникМенеджер^имя>, СправочникСсылка.<имя> и т. д.)' Среди них есть один объект, который предоставляет доступ к объекту справочника в базе данных - СправочникОбъект.<имя>.

Справочники и документы
И |
нтересно обратить внимание на разницу в употреблении единственного и множественного числа при именовании объектов вида «Справочник» и объектов вида «Документ». Если вы откроете дерево типовой конфигурации, то увидите, что все объекты, расположенные в ветке «Справочники», как правило, именованы во множественном числе. В ветке же «Документы» все объекты, как правило, именованы в единственном числе. Может сложиться впечатление что, создавая объект «Справочник», мы создаем «хранилище» для записей этого справочника, а, создавая «Документ», мы создаем некий шаблон этого документа. На самом деле это не так.
Создавая в конфигураторе объект вида «Справочник» мы даем ему наименование во множественном числе («Товары»), подразумевая тем самым, что в базе данных этот объект будет состоять из записей, каждая из которых описывает один товар (в единственном числе).
Создавая в конфигураторе объект вида «Документ» мы даем ему наименование в единственном числе («Приходная накладная»), однако на самом деле мы создаем такое же «хранилище», как и в случае со справочником. Каждая запись этого «хранилища» будет описывать одну приходную накладную (в единственном числе). Поэтому концептуально правильно было бы в конфигураторе задавать наименование объекта вида «Документ» во множественном числе, подчеркивая тем самым описание набора документов этого вида (например, «Приходные накладные»).
Однако, психология человека такова, что, открывая ветку «Документы», он ожидает увидеть перечисление их в единственном числе, а никак не во множественном. Так происходит потому, что в реальной жизни трудно найти подходящий термин для описания совокупности документов одного вида (совокупность записей одного вида обозначить гораздо проще - справочник, план и т. д.). Поэтому соответствующая ветка объектов конфигурации имеет название «Документы», а объекты, создаваемые в этой ветке, именуются в единственном числе, хотя, по сути, сама ветка содержит описания «хранилищ» документов разных видов, а каждый элемент в этой ветке описывает набор всех документов одного вида.

538
539
Понятие момента времени
Д |
ля определения положения документа на оси времени используется реквизит документа «Дата». Дата содержит время с точностью до секунды. Это позволяет контролировать последовательность записи документов. Однако при большом объеме создаваемых документов вероятна ситуация, когда несколько документов будут иметь одинаковое значение даты (т. е. будут созданы в течение одной секунды). Как в этом случае определить последовательность созданных документов?
Для обработки подобных ситуаций было введено понятие момент времени. Момент времени представляет собой совокупность даты, времени и ссылки на объект базы данных. Момент времени позволяет однозначно идентифицировать любой объект ссылочного типа базы данных на оси событий, но имеет смысл, в основном, только для документов. Кроме того, момент времени позволяет идентифицировать и не объектные данные, например, записи регистров, подчиненных регистратору.
Понятие момента времени реализовано во встроенном языке при помощи универсального объекта МоментВремени. Этот объект имеет свойства «Дата» и «Ссылка», которые позволяют получить «составляющие» момента времени, и один метод - Сравнить(), при помощи которого возможно сравнение двух моментов времени между собой. Кроме этого объект МоментВремени имеет конструктор и может быть создан в явном виде для любого объекта базы данных ссылочного типа.
Для нескольких документов, имеющих одинаковую дату и время, последовательность их на оси событий определяется системой исходя из ссылок на эти документы, может не совпадать с последовательностью создания документов, и не доступна для изменения пользователем.
Концепция оперативного и неоперативного проведения документов
П |
ри разработке конфигураций на платформе 1С:Предприятие 8.0 принято использовать концепцию оперативного и неоперативного проведения документов.
Эта концепция подразумевает, что работа пользователей может происходить в двух принципиально разных, по своей сути, режимах.
Оперативное проведение документов пользователями выполняется в режиме «реального времени», т. е. отображает изменения, факты, свершающиеся в настоящее время. Оперативное проведение особенно актуально при многопользовательской работе. Поэтому при оперативном проведении документов следует осуществлять максимум проверок, способных исключить ошибки при вводе данных пользователями. Например, при оперативном проведении следует выполнять контроль остатков на складе списываемой номенклатуры с тем, чтобы исключить одновременную продажу одного товара несколькими продавцами.
Неоперативное проведение документов подразумевает отражение в базе данных фактов, которые свершились в прошлом, или которые точно будут совершены в будущем. Поэтому задача неоперативного проведения документов заключается в том, чтобы просто отразить в информационной базе данные о совершенных операциях.
При неоперативном проведении документов не производится ряд проверок, в частности контроль остатков. Подразумевается, что если в процессе неоперативного проведения документов были допущены ошибки (например, списано такое количество номенклатуры, которого нет на складе), то анализ полученного состояния базы данных является отдельной задачей, не относящейся к неоперативному проведению и выполняющейся отдельно от него.
Таким образом, оперативное проведение служит для того, чтобы в
реальном режиме многопользовательской работы определить
возможность или невозможность выполнения той или иной операции
(и выполнить ее, если возможно), а неоперативное проведение служит
для безусловного отражения в базе операций, которые уже были
совершены (или точно будут совершены).

540
541
Механизмосновныхф»гм
Механизм основных форм
У |
всех прикладных объектов конфигурации существует некоторое количество основных форм. Они служат для отображения данных объекта в том или ином виде. Если разработчик не назначит в качестве основных форм объекта свои собственные, система будет генерировать необходимые формы объекта самостоятельно, в те моменты, когда к ним происходит обращение. Наличие такого механизма позволяет разработчику не тратить время на создание форм для тестирования своей разработки, а воспользоваться тем, что платформа создаст по умолчанию.
Создание этих форм происходит динамически, в процессе работы системы. Форма создается в тот момент, когда к ней происходит обращение. Причем не важно, интерактивное это обращение или программное. Так для констант форма будет создана как при интерактивном выборе в меню Операции | Константы, так и при программном вызове метода ПолучитьФорму() объекта КонстантыМенеджер:
какого-либо регистра вместо обычной формы списка форму набора записей - он сможет это сделать, воспользовавшись конструктором и определив ее в качестве основной формы регистра. Но для логики работы системы это не будет иметь принципиального значения
Константы. ПолучитьФорму();
Также примечательным фактом является то, что состав основных форм, определенных для объекта конфигурации может не совпадать с перечнем тех форм, которые вообще можно создать для данного объекта, используя конструктор формы.
Например, для большинства регистров в конфигураторе можно задать основную форму списка. Однако если открыть конструктор форм для регистра, вы увидите, что кроме формы списка предлагается создать и форму набора записей регистра, которая отсутствует в перечне основных форм.
Дело в том, что состав основных форм определяется исходя из того, какое представление данных может понадобиться в процессе интерактивной работы пользователя. Для этих представлений разработчик может создать свои формы и указать их в качестве основных, а может использовать те формы, которые система создаст автоматически.
Конструктор форм, напротив, исходит из потребностей разработчика. Если разработчик посчитает нужным использовать ДЛЯ

542
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |





