Фирма 1С Система программ Решения Платформа Методическая поддержка Партнерам Другие сайты
.
 
 
Технологическая платформа
 
Функционал типовых решений
Библиотека стандартных подсистем
Система проектирования прикладных решений
 
1С:Бухгалтерия
 
1С:Упрощенка
 
1С:Предприниматель
 
1С:Управление небольшой фирмой
 
1С:Управление
торговлей
 
1С:Зарплата и Управление
Персоналом
 
1С:Комплексная автоматизация
 
1С:Управление производственным предприятием
 
1С:Консолидация
 
1С:Платежные документы
 
1С:Налогоплательщик
 
1С:Розница
 
1С:Документооборот
 
1С:Деньги
 
1С:Бухгалтерия государственного учреждения
 
1С:Зарплата и кадры бюджетного учреждения
 
1С:Бюджет поселения
 
1С:Документооборот государственного учреждения
 
1С:Бюджетная отчетность
 
1С:Свод отчетов
 
1С:Государственные и муниципальные закупки
 
1С:Электронное обучение
 
1С:Управляющий
Локализованные решения
Отраслевые и специализированные решения
Внедренные решения
Самые масштабные проекты
Технологические вопросы крупных внедрений

Интеграция

Как купить и внедрить?
Центры разработки

Центры компетенции по производству

Центры компетенции по торговле
Партнеры, работающие на корпоративном рынке
Новости и публикации
Обучение
Интернет-поддержка
Версия для печати Поиск
Главная 1С:Предприятие 8 Вопросы при переходе с версии 7.7

Форма

Табличное поле

Почему у меня не вызывается процедура ПриОткрытии в модуле формы?
Почему в формах не поддерживается механизм слоев? Как разместить элемент в форме на двух закладках?
Есть ли в формах 1С:Предприятия 8 возможность сохранения настроек пользователя аналогичная формам отчетов и обработок 1С:Предприятия 7.7?
Есть ли в 1С:Предприятии 8 аналог метода АктивизироватьОбъект()?
Как в 1С:Предприятии 8 использовать элемент управления Переключатель?
В описании событий элементов управления не указывается параметр Элемент?
Почему при активизации элемента управления не вызывается автоматически выбор из списка?
Как сохранить табличный документ в формате MS Excel?
Почему в формах списков нет кнопки "Просмотр"?
Чем в 1С:Предприятии 8 отличаются формы справочников, документов и других объектов?
Как в форме реализовать выбор их списка значений в виде списка и в виде меню?
Как в форме настроить порядок обхода?
Как работать с элементом управления ПолеВыбора?
Как передать параметр в форму?
Как для поля ввода составного типа определить выбор значения конкретного типа?
Как из формы открыть другую форму и получить из нее выбранное значение?
Как открыть несколько экземпляров одной формы?
Как назначить конкретный тип элементу управления, который связан с реквизитом формы, имеющим составной тип?
Как в 1С:Предприятии 8 программно очистить реквизит в форме?
Как организовать выбор значений из списка, открывающегося под элементом формы? (новое)

Почему у меня не вызывается процедура ПриОткрытии в модуле формы?

Потому что эта процедура должна быть явно назначена как обработчик события "При открытии" в свойствах формы. Одного совпадения имени процедуры и события недостаточно. Более того, имя процедуры может отличаться от имени события. Подробнее об этом можно прочитать на ИТС в разделе "Процедуры - обработчики событий".

Почему в формах не поддерживается механизм слоев? Как разместить элемент в форме на двух закладках?

В 1С:Предприятии 8 вместо механизма слоев в формах используются панели. Панель может иметь несколько страниц и предоставляет гибкие возможности манипулирования страницами (различные варианты размещения закладок, режим прокручиваемых страниц, возможность использования закладок без распределения элементов по страницам).

Однако один элемент управления не может располагаться одновременно на двух и более страницах. Обычно страницы создаются не в основной панели формы, а в некоторой панели, вставленной в форму. Элементы управления, которые должны отображаться всегда, размещаются вне этой панели.

Существует возможность связать данные (например, реквизит документа) с несколькими элементами управления и таким образом организовать редактирование одного реквизита на нескольких страницах. Однако такое решение используется только в отдельных случаях. В большинстве случаев рекомендуется наиболее важные элементы формы размещать вне многостраничной панели, а остальные элементы распределять по страницам.

Есть ли в формах 1С:Предприятия 8 возможность сохранения настроек пользователя аналогичная формам отчетов и обработок 1С:Предприятия 7.7?

Такая возможность в 1С:Предприятии 8 также поддерживается в формах отчетов и обработок. Эту функциональность обеспечивают соответствующие расширения формы, если в качестве основного реквизита формы выбраны значения типа ОтчетОбъект или ОбработкаОбъект.

Чтобы задействовать данную функциональность, необходимо в палитре свойств установить значения свойств "Сохранять значения" и "Сохраняемые значения". В командной панели формы можно использовать стандартные кнопки сохранения и восстановления настроек.

Есть ли в 1С:Предприятии 8 аналог метода АктивизироватьОбъект()?

В 1С:Предприятии 8 для активизации строки конкретного табличного поля следует выполнить установку свойства ТекущаяСтрока соответствующего элемента управления. Этому свойству присваивается значение, идентифицирующее строку, которую необходимо активизировать. Тип значения зависит от типа данных, с которыми связано табличное поле. Например, для списка справочника это будет ссылка на элемент справочника, а для табличной части - строка табличной части.

В 1С:Предприятии 8 кроме возможности непосредственного управления табличными полями существует специальная механика, предназначенная для организации взаимодействия между формами. В большинстве случаев для установки текущей строки в форме списка из другой формы рекомендуется использовать свойство формы НачальноеЗначениеВыбора, а также свойства ПараметрТекущаяСтрока расширений форм списков.

Как в 1С:Предприятии 8 использовать элемент управления Переключатель?

Так же, как и в 1С:Предприятии 7.7, нужно отметить первый переключатель в группе. Для этого нужно в палитре свойств установить свойство ПервыйВГруппе. Первый в группе переключатель будет связываться с данными.

Основным отличием реализации переключателя в 1С:Предприятии 8 является то, что для каждого переключателя в группе задается значение, которое будет помещаться в данные при его выборе. Это значение задается в свойстве ВыбираемоеЗначениe. Значение может быть задано непосредственно в палитре свойств.

Таким образом, работа с переключателем в 1С:Предприятии 8 не зависит от порядка следования элементов управления в группе, что позволяет добавлять, удалять и переставлять местами элементы управления группы не изменяя их использование в модуле.

В описании событий элементов управления не указывается параметр Элемент?

В обработчиках событий элементов управления формы первым параметром всегда является параметр Элемент. В нем в обработчик передается элемент управления, вызвавший конкретное событие. Этот параметр добавляется формой для всех обработчиков элементов управления, и он не описывается в документации для конкретных событий.

Наличие параметра Элемент позволяет реализовывать один обработчик для событий нескольких элементов управления и анализировать, какой элемент вызвал событие. В частности, это необходимо, если элементы управления создаются средствами встроенного языка.

Рекомендуется создавать обработчики в модуле нажатием кнопки с изображением лупы в соответствующем событии в палитре свойств. В этом случае будет создан обработчик с необходимым составом параметров.

Почему при активизации элемента управления не вызывается автоматически выбор из списка?

В 1С:Предприятии 8 появился режим ввода ссылочных значений путем ввода первых символов кода, наименования или номера соответствующего объекта. Это позволяет существенно ускорить ввод информации. Чтобы этот режим мог эффективно использоваться, изменено типовое поведение автоматического открытия списка выбора. Оно выполняется теперь не при активизации элемента управления, а при нажатии клавиши Enter, если значение не заполнено. Таким образом, после активизации элемента управления пользователь может или ввести несколько первых символов и нажать Enter для выполнения поиска по символам или сразу нажать Enter чтобы инициировать выбор из списка. Такое решение позволяет эффективно сочетать обе возможности.

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

Как сохранить табличный документ в формате MS Excel?

В 1С:Предприятии 8 команда меню "Файл-Сохранить как…" предоставляет возможность сохранения табличного документа только в "родном" формате табличного документа. Для сохранения в форматах MS Excel, HTML, а также текстовом формате и формате табличного документа 1С:Предприятия 7.7 следует использовать пункт меню "Файл-Сохранить копию…".

Почему в формах списков нет кнопки "Просмотр"?

В 1С:Предприятии 8 при открытии формы объекта (документа, элемента справочника и т.д.) не выполняется блокировка объекта от изменения другими пользователями. Два пользователя могут, например, открыть один и тот же документ одновременно. Блокировка выполняется при начале редактирования данных объекта в форме. Если объект уже заблокирован другим пользователем, то при попытке начала редактирования будет выдано соответствующее сообщение.

Таким образом, нет необходимости в специальном режиме открытия форм объектов для просмотра. Форма объекта может быть открыта из любого режима программы (из списка, из отчета в качестве расшифровки и т.д.) без указания того, предполагается ли выполнять редактирование или нет.

Чем в 1С:Предприятии 8 отличаются формы справочников, документов и других объектов?

Механизм форм в 1С:Предприятии 8 позволяет в любой форме отображать и редактировать любые данные. Принадлежность форм в конфигурации к конкретным объектам метаданных необходима для удобства организации структуры прикладного решения. То есть форма в конфигурации только "принадлежит" объекту метаданных и может использоваться в качестве основной формы для просмотра списка, редактирования или выбора. Содержимое формы никак не определяется тем, к какому объекту метаданных относится форма и выбрана ли форма в качестве основной.

Функциональность формы определяется реквизитами формы и связанными с ними элементами управления. В большинстве случаев функциональность формы обеспечивается за счет выбора основного реквизита формы. Он определяет наличие расширения формы и обеспечивает поведение формы специфическое для конкретного прикладного объекта. Например, форма документа будет поддерживать функциональность, ориентированную на редактирование документа, если в качестве ее основного реквизита выбрано значение типа ДокументОбъект.

Таким образом, при выборе соответствующих типов реквизитов любая форма может использоваться для редактирования и просмотра любых данных. При создании форм с помощью конструкторов в форме размещаются реквизиты и элементы управления, в зависимости от ее назначения, выбранного в конструкторе, однако при необходимости разработчик может реализовать в форме любую функциональность.

Как в форме реализовать выбор из списка значений в виде списка и в виде меню?

В 1С:Предприятии 8 для реализации этой возможности используются не методы списка значений, а методы формы ВыбратьИзСписка() и ВыбратьИзМеню(). В параметрах метода указывается элемент управления, рядом с которым должен выполняться выбор. При этом для некоторых элементов управления (табличного поля, поля табличного документа) система располагает список выбора и меню с учетом текущей позиции в этом элементе управления.

Пример вызова:

Выбор = ВыбратьИзСписка(СЗ, Элемент, НачальноеЗначение);

Как в форме настроить порядок обхода?

По умолчанию, у панелей форм в 1С:Предприятии 8 устанавливается режим автоматического определения порядка обхода. При использовании этого режима настройка порядка обхода недоступна, так как система автоматически обновляет порядок обхода при изменении состава и расположения элементов управления.

Чтобы отменить этот режим, нужно в палитре свойств отключить свойство АвтоПорядокОбхода панели формы. Следует учитывать, что это свойство устанавливается не у формы, а у каждой панели формы.

Как работать с элементом управления ПолеВыбора?

В 1С:Предприятии 8 значением поля выбора является собственно выбираемое значение, а не список выбора.

Список выбора задается в свойстве СписокВыбора элемента управления.

Заполнять список выбора рекомендуется в теле модуля, а не в обработчиках ПередОткрытием() и ПриОткрытии().

Например:

ЭлементыФормы.ПолеВыбора1.СписокВыбора.Добавить(1, "Один");

ЭлементыФормы.ПолеВыбора1.СписокВыбора.Добавить(2, "Два");

ЭлементыФормы.ПолеВыбора1.СписокВыбора.Добавить(3, "Три");

Далее используя значение реквизита связанного с полем выбора можно получать и устанавливать текущее выбранное значение.

Как передать параметр в форму?

Для того чтобы передать в форму некоторое значение, можно создать в форме реквизит и перед открытием формы установить значение этого реквизита. Например:

Фрм = Обработки.ТестОбработки.ПолучитьФорму();
Фрм.ОсобыйРежим = Истина;
Фрм.Открыть();

Далее в обработчике модуля формы можно анализировать значение реквизита. Например:

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
Если ОсобыйРежим Тогда
Сообщить("Особый режим");
КонецЕсли;
КонецПроцедуры

Для управления формой можно также использовать экспортируемые переменные модуля формы и экспортируемые процедуры и функции модуля формы.

Как для поля ввода составного типа определить выбор значения конкретного типа?

Поле ввода при редактировании реквизита составного типа запрашивает у пользователя тип, если текущее значение имеет тип Неопределено. Если значение имеет другой тип, то выполняется редактирование значения этого типа. При очистке значения снова устанавливается значение Неопределено.

Чтобы выполнялось редактирование значения конкретного типа необходимо просто присвоить реквизиту значение требуемого типа. Например:

ПолеВвода2 = Документы.Счет.ПустаяСсылка();

При этом у пользователя останется возможность выбрать значение другого типа, очистив текущее значение.

Чтобы ограничить состав типов предлагаемых полем ввода пользователю для выбора следует использовать свойство ОграничениеТипа.

Чтобы отключить у поля ввода выбор типа и установку значения Неопределено, при очистке следует установить свойству ВыбиратьТип значение Ложь.

Как из формы открыть другую форму и получить из нее выбранное значение?

Допустим, из первой формы нужно открыть вторую форму. Для этого следует открыть вторую форму как подчиненную первой форме (или нужному элементу управления первой формы) и затем выполнить интерактивный выбор во второй форме, или вызвать метод второй формы ОповеститьОВыборе(). Результат будет доступен в обработчике события ОбработкаВыбора() первой формы (или ее элемента управления, если вторая форма открывалась как подчиненная этому элементу управления).

В модуле первой формы:

Процедура КнопкаСформироватьНажатие(Элемент)
Форма = Отчеты.Отчет1.ПолучитьФорму("Форма2",ЭтаФорма);
Форма.Открыть();
КонецПроцедуры

Процедура ОбработкаВыбора(РезультатВыбора, ИсточникВыбора)
Сообщить(РезультатВыбора);
КонецПроцедуры

В модуле второй формы:

Процедура КнопкаСформироватьНажатие(Элемент)
ОповеститьОВыборе(ПолеВвода1);
КонецПроцедуры

Более подробно об этом можно прочитать в разделе "Переопределение выбора в поле ввода" на диске информационно-технологического сопровождения (ИТС).

Как открыть несколько экземпляров одной формы?

Уникальность открытой формы определяется ее свойством КлючУникальности, которое может принимать значения произвольного типа.

Как правило, при открытии формы средствами встроенного языка, сначала нужно получить форму (метод ПолучитьФорму()), а затем выполнить ее открытие (метод Открыть()).

Одним из параметров метода ПолучитьФорму() является параметр КлючУникальности. При выполнении этого метода система будет сначала искать открытую форму с указанным ключом уникальности и, если такая существует, будет возвращена именно она. Если же нет, то будет возвращена новая форма, и ее свойство КлючУникальности будет установлено значением соответствующего параметра метода ПолучитьФорму(). Поэтому для того чтобы открыть несколько копий одной и той же формы, следует выполнять метод ПолучитьФорму() с различными ключами уникальности. Для этого, например, можно использовать общий объект УникальныйИдентификатор, создавая его каждый раз с помощью конструктора:

Форма = Отчеты.АнализЦен.ПолучитьФорму("ГлавнаяФорма", ,Новый УникальныйИдентификатор());
Форма.Открыть();

Значение ключа уникальности формы также может быть изменено в модуле самой формы.

Подробнее об этом можно прочитать в разделе "Механизм уникальности форм" на диске информационно-технологического сопровождения (ИТС).

Как назначить конкретный тип элементу управления, который связан с реквизитом формы, имеющим составной тип?

Для этого можно присвоить реквизиту формы значение пустой ссылки нужного типа. Например, для поля ввода, связанного с реквизитом, который может принимать значение ссылки на справочники физических и юридических лиц, назначение нужного типа может выглядеть следующим образом:

ПолеВвода1 = Справочники.ФизическиеЛица.ПустаяСсылка();

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

Во-первых, можно запретить выбор типа в поле ввода (свойство ВыбиратьТип). В этом случае нажатие на кнопку очистки не будет приводить к сбросу типа в поле ввода.

Во-вторых, можно использовать свойство поля ввода ОграничениеТипа, задающее возможные типы данных, которые могут быть введены в поле ввода, и приводить значение соответствующего реквизита к нужному типу:

Массив = Новый Массив();
Массив.Добавить(Тип("СправочникСсылка.ФизическиеЛица"));
НашеОписание = Новый ОписаниеТипов(Массив);

ЭлементыФормы.ПолеВвода1.ОграничениеТипа = НашеОписание;
ПолеВвода1 = НашеОписание.ПривестиЗначение(ПолеВвода1);

Как в 1С:Предприятии 8 программно очистить реквизит в форме?

Для того чтобы очистить реквизит в форме, следует присвоить этому реквизиту значение по умолчанию. Например, для реквизита "Склад" имеющего тип СправочникСсылка.Склады фрагмент кода будет выглядеть следующим образом:

Склад = Справочники.Склады.ПустаяСсылка();

Как организовать выбор значений из списка, открывающегося под элементом формы?

Для этого следует использовать методы формы ВыбратьИзСписка() или ВыбратьИзМеню().

Метод ВыбратьИзСписка() позволяет открыть выпадающий список для интерактивного выбора одного из элементов, причем список будет расположен около переданного элемента формы или около активной области формы (если элемент формы не передан).

Например, следующий код позволяет открыть выпадающий список под полем ввода «ПолеВводаКонтрагент» для выбора одного из контрагентов:

СписокВыбора = Новый СписокЗначений; 

СписокВыбора.Добавить(Справочники.Контрагенты.НайтиПоКоду("Ю0039")); 
СписокВыбора.Добавить(Справочники.Контрагенты.НайтиПоКоду("Ю0040")); 

ВыбранноеЗначение = ВыбратьИзСписка(СписокВыбора, ЭлементыФормы.ПолеВводаКонтрагент); 

Если ВыбранноеЗначение <> Неопределено Тогда 
	ПолеВводаКонтрагент = ВыбранноеЗначение.Значение; 
КонецЕсли; 

Метод ВыбратьИзМеню() работает аналогично методу ВыбратьИзСписка() за исключением того, что для выбора открывается не выпадающий список, а меню.

Например, следующий код позволяет открыть меню для интерактивного выбора одного из действий, которые необходимо выполнить для контрагента, выбранного в поле ввода «ПолеВводаКонтрагент»:

СписокВыбора = Новый СписокЗначений; 

СписокВыбора.Добавить("Загрузка", "Загрузить информацию"); 
СписокВыбора.Добавить("Выгрузка", "Выгрузить данные"); 

ВыбранноеЗначение = ВыбратьИзМеню(СписокВыбора, ЭлементыФормы.ПолеВводаКонтрагент); 

Если ВыбранноеЗначение.Значение = "Загрузка" Тогда 
	ЗагрузитьИнформациюКонтрагента(ПолеВводаКонтрагент); 

ИначеЕсли ВыбранноеЗначение.Значение = "Выгрузка" Тогда 
	ВыгрузитьДанныеКонтрагента(ПолеВводаКонтрагент); 
КонецЕсли; 

 

Вернуться к списку

   © ООО «1С»

Отправить ваши замечания и предложения по сайту