<<

стр. 11
(всего 11)

СОДЕРЖАНИЕ


627
626
раткий справочник разработчика Вопросы при переходе с версии 7.7

Как сохранить документ без проведения (в 7.7 можно было Для обхода табличной части можно использовать и обычный цикл
написать в кнопке #Записать Закрыть)? Для ... По ... Цикл ... КонецЦикла, но необходимо помнить, что
индекс первого элемента коллекции всегда равен нулю:
В версии 8.0 следует использовать обработчик события нажатия
кнопки. Назначение процедур модуля обработчиками события нажатия
возможно как для новых кнопок, размещаемых в форме, так и для Для СчетчикЦикла = 0 По Материалы.Количество() - 1 Цикл
ОчереднаяСтрока = Материалы[СчетчикЦикла];
стандартных кнопок, расположенных в командной панели КонецЦикла;
«ОсновныеДействияФормы».
В обработчике события нажатия следует вызвать метод объекта
В качестве примера можно посмотреть главу «
документ Записать(), с первым параметром, равным Способы работы с коллекцией» на странице 550, или обработчик
РежимЗаписиДокумента.Запись. После этого нужно закрыть события «ОбработкаПроведения» в модуле документа
форму: «ПриходнаяНакладная» в разделе «Создание движений документа
ПриходнаяНакладная» на странице 89.
Процедура ЗаписатьБезПроведенияИЗакрыть(Кнопка)
Записать(РежимЗаписиДокумента.Запись); Закрыть();
Есть ли в версии 8.0 подчиненные документы?
КонецПроцедуры _______________ _______________
Нет, специального понятия "Подчиненные документы" в версии 8.0
не существует.
В версии 8.0 одни объекты (документы, элементы справочников,
Как перебрать строки табличной части документа? задачи и т.д.) могут являться основанием, для создания других
Табличная часть документа (так же, как и любого другого объекта объектов. Таким образом, документ может быть создан не только на
конфигурации, обладающего табличными частями) представляет основании другого документа, но и на основании, например, элемента
собой коллекцию значений, элементами которой являются строки справочника или бизнес-процесса.
табличной части. Поэтому перебор строк табличной части (так же, как
Поэтому теперь, для получения документов, имеющих ссылки на
и любой другой коллекции значений) проще всего реализовать с
некоторый документ, рекомендуется использовать объект Критерий
помощью циклаДля Каждого ... Из ... Цикл ... КонецЦикла:
отбора. Использование критерия отбора предоставляет больше
возможностей, чем механизм подчиненных документов. Критерий
отбора позволяет отбирать не только документы, но и другие объекты
Для Каждого ТекСтрокаМатериалы Из Материалы Цикл
базы данных. Кроме того, он позволяет непосредственно указать
ОчереднаяСтрока = ТекСтрокаМатериалы;
КонецЦикла; перечень реквизитов, по значению которых необходимо выполнять
отбор.
При этом переменной цикла «ТекСтрокаМатериалы» будет
В форме критерия отбора можно использовать стандартный список
являться не номер строки, а вся строка как объект. Для получения
для отображения найденных значений и также в форме вставить
номера строки следует использовать свойство НомерСтроки или
список документов с отбором по указанному критерию.
добавить переменную и увеличивать ее в теле цикла.
Однако следует учитывать, что критерий отбора не позволяет
выполнять динамический просмотр найденных данных. В список
будут включаться все найденные объекты. Соответственно,
нецелесообразно использовать этот механизм, если количество



629
Вопросы при переходе с версии 7.7
шожения

В этом обработчике и должен быть реализован алгоритм
найденных объектов по значениям критерия отбора будет достаточно
заполнения данных объекта исходя из данных объекта-основания.
велико. Если вы воспользуетесь конструктором ввода на основании, то он
Примеры работы с зависимыми объектами можно посмотреть в сгенерирует обработчик именно этого события.
разделах «Ввод на основании» на странице 493 и «Объекты, введенные Надо помнить, что событие «Обработка заполнения» возникает не
на основании» на странице 497. только при вводе на основании. Это событие будет возникать и при
вызове метода объекта Заполнить().
Как добавить строку в табличную часть документа? Таким образом, обработчик события «Обработка заполнения»
Табличная часть документа представляет собой коллекцию является стандартным местом, в котором реализуется заполнение
значений, элементами которой являются строки табличной части. данных объекта из данных объекта основания без учета того, откуда и
В версии 8.0 существуют общие принципы работы с коллекциями зачем вызывается это заполнение.
значений. Чтобы добавить элемент в коллекцию (в данном случае Поэтому обратите внимание на то, что в этом обработчике следует
строку в табличную часть документа), нужно вызвать у коллекции выполнять только заполнение данных, и не следует делать каких-либо
метод Добавить(). Метод возвращает объект - добавленный элемент дополнительных действий связанных с интерфейсом системы.
коллекции. В случае с табличной частью это будет строка табличной
Аналогичным образом выполняется копирование. При
части: копировании вызывается обработчик события объекта «При
копировании», в котором можно дополнить стандартное заполнение
СтрокаСостава = ДокументОбъект.Состав.Добавить(); данных выполняемое системой при копировании объекта. Этот
СтпокаСостава.Количество = 10; обработчик вызывается, как при интерактивном копировании, так и
при вызове метода Скопировать().
Кроме того, расширения форм объектов (форма документа, форма
Не могу найти метод Провести() у документа...?
элемента справочника и т.д.) предоставляют свойства
В версии 8.0 у документа нет метода Провести().
ПараметрОснование и ПараметрОбъектКопирования, которые
Это связано с тем, что проведение документа не выделяется теперь
заполняются системой при выполнении стандартных команд ввода на
в отдельное действие. В версии 8.0 проведение рассматривается как
основании и копирования. Значения этих свойств можно использовать
один из режимов записи документа. в обработчиках событий формы для определения того, что при
Таким образом, теперь документ может быть либо просто записан, открытии формы выполнялся ввод на основании или копирование.
либо записан с проведением, либо с отменой проведения. Режим Примеры обработки ввода одних объектов на основании других
записи документа задается параметром его метода Записать(): можно посмотреть в разделах «Ввод на основании» на странице 493 и
«Объекты, введенные на основании» на странице 497.
ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);

Как прочитать движения документа по определенному регистру?
Существует два способа, которыми можно это сделать.
Как теперь обрабатывать во встроенном языке ввод на основании
Во-первых, можно «пойти от документа». Для этого следует
и копирование?
воспользоваться свойством объекта ДокументОбъект.<имя> -
В версии 8.0 при вызове стандартной команды ввода на основании
Движения. Это свойство содержит коллекцию пустых наборов
выполняется создание нового объекта и вызов в модуле этого объекта
записей документа по каждому из регистров, которые указаны для
обработчика события «Обработка заполнения».


631
630
Приложения


этого документа в конфигураторе. Чтобы получить движения
Список значений
документа по конкретному регистру, нужно обратиться к набору
записей этого конкретного регистра (указав имя регистра в качестве
свойства через точку), и затем прочитать этот набор записей:
Раньше (в 7.7) можно было сделать выбор из списка значений в
виде маленького списка или меню, которое подстраивалось по
ДокументОбъект = Документы.ПриходнаяНакладная. элементу управления формы... А как то же самое сделать в 8.0?
НайтиПоНомеру(1).ПолучитьОбъект;
В версии 8.0 для реализации такой возможности следует
Движения = ДокументОбъект.Движения.ОстаткиМатериалов;
использовать методы формы (а не списка значений, как это было в
Движения.Прочитать();
7.7): ВыбратьИзСписка() и ВыбратьИзМеню().
В параметрах этих методов указывается элемент управления, рядом
Во-вторых, можно «пойти от регистра». Для этого следует создать
с которым должен выполняться выбор. При этом для некоторых
набор записей требуемого регистра, установить для него отбор по
элементов управления (табличного поля, поля табличного документа)
регистратору, равному ссылке на интересующий нас документ, и затем система располагает список выбора и меню с учетом текущей позиции
прочитать этот набор записей: в этом элементе управления.

Движения = РегистрыНакопления.ОстаткиМатериалов.СоздатьНаборЗаписей();
Пример вызова: Выбор = ВыбратьИзСпиека(СписокЗначений, ЭлементФормы,
Движения.Отбор.Регистратор.Значение = Документы.ПриходнаяНакладная.
НайтиПоНомеру( 1);
Движения.Прочитать();
НачальноеЗначение);



Таблица (табличный документ)
В 7.7 были общие реквизиты. В версии 8.0 их нет?
Да. Было принято решение в версии 8.0 отказаться от общих
реквизитов документов. Вместе с этим в версии 8.0 нет и общего В 7.7 была процедура НоваяСтраница(). А что в 8.0?
журнала документов. Для того, чтобы в версии 8.0 вставить в табличный документ
разделитель страниц, следует использовать метод объекта
Теперь, если у всех документов нужно иметь аналогичные
ТабличныйДокумент
реквизиты, например, «Автор» и «Редактор», эти реквизиты следует
ВывестиГоризонтальныйРазделительСтраниц().
создать вручную у каждого документа.
Следует заметить, что также появилась возможность вставлять в
При необходимости использовать аналог общего журнала версии табличный документ и вертикальные разделители страниц (метод
7.7, следует просто создать журнал документов, в котором будут ВывестиВертикальныйРазделительСтраниц()).
регистрироваться все существующие документы.
Как сохранить табличный документ в формате Excel? У меня
Однако в этом случае следует иметь в виду, что при интенсивной
ничего не получается...
работе пользователей в файловом варианте информационной базы,
В версии 8.0 для сохранения табличного документа в формате,
высока вероятность возникновения коллизий. Добиться ее уменьшения
отличающемся от его исходного формата, следует использовать пункт
можно путем исключения из состава этого журнала документов,
меню Файл | Сохранить копию...
которые проводятся наиболее часто.
Команда меню Файл | Сохранить как... позволяет сохранять
табличный документ только в «родном» формате.
Вопросы при переходе с версии 7.7
Приложения

Версия 8.0
Запрос
Общие вопросы
В запросах версии 7.7 была опция «все вошедшие в запрос». Как
сделать то же самое в 8.0?
Я указываю период (дату начала, дату окончания), но последний
В версии 7.7 опция «все вошедшие в запрос» использовалась для
день в него не попадает. Почему?
вывода в отчет всех значений одной из группировок запроса. Такая
Дело в том, что в версии 8.0 значения типа Дата включают в себя
необходимость могла возникнуть при создании, например, отчета об
время с точностью до секунд. По умолчанию, если время в явном виде
остатках на складах, в котором обязательно должны быть указаны все
не задается, оно устанавливается равным 00:00:00. Поэтому, если
склады, независимо от того, есть на них остатки товаров, или нет. нужно указать период по какую-то дату включительно, следует
В версии 8.0 для решения такой задачи следует использовать указывать конец суток, т.е. определенную дату со временем 23:59:59,
параметр «Группировки для значений группировок» методов либо использовать функцию КонецДня(), если время в явном виде не
Выбрать() результата запроса и выборки из результата запроса. Если в задается.
качестве этого параметра указать "Все", то будут выбраны все
В качестве примера можно посмотреть процедуру
значения этой группировки в запросе. Если же указать конкретную «ДействияФормыРейтингУслугСформировать» в модуле формы
вышестоящую группировку, то будут выбраны все значения отчета «РейтингУслуг» в разделе «Отчет Рейтинг услуг» на странице
группировки для текущих значений указанных вышестоящих 173.
группировок.
В качестве примера можно привести отчет по складским остаткам,
Преобразую число из 4 цифр в строку и получаю количество
сгруппированным по фирмам. В таком отчете данные по фирме будут символов в строке - 5. Это почему так?
выводиться с новой страницы, причем для каждой фирмы будет Дело в том, что в версии 8.0 получение строкового представления
сформирован свой состав колонок-складов в зависимости от того, на числа выполняется на основе региональных настроек, установленных
каких складах есть остатки по этой фирме. на компьютере.
Наряду с описанным выше параметром, для группировок типа Дата В случае, когда установлены стандартные региональные настройки
существует возможность указать в тексте запроса способ дополнения для России, при приведении числа к строке между группами разрядов
результата запроса значениями группировки в указанном интервале с чисел вставляется неразрывный пробел (Символы.НПП), например:
заданной периодичностью. Для этого в описании формирования
итогов используется ключевое слово ПЕРИОДАМИ. Год = 2004;
С помощью такой конструкции можно, например, сформировать СтроковоеПредставление = Строка(Год);
// СтроковоеПредставление = "2 004"
отчет о продажах по неделям, в котором будет отражена каждая
// длина строки - 5 символов, включая неразрывный пробел
неделя, независимо от того, были ли продажи в эту неделю, или нет.
Вывод в отчет всех периодов может понадобиться также при
построении диаграмм, в которых необходимо обеспечить
непрерывность отображения периодов.
В качестве примера можно посмотреть отчет «Выручка мастеров» в
разделе «Отчет ВыручкаМастеров» на странице 183.




635
Приложения Вопросы при переходе с версии 7.7

Чтобы преобразовать число к строке без вставки символа- У меня есть реквизит составного типа, включающий ссылки на
разделителя групп (неразрывного пробела), нужно использовать два справочника. Когда я пытаюсь получить через точку
функцию Формат() с параметром «ЧГ» равным нулю: наименование справочника, система выдает ошибку. Почему?
В 1С:Предприятии 8.0 для реквизитов имеющих составной тип
(боле одного типа) независимо от того какие типы в него включены,
Год = 2004;
значением по умолчанию является значение Неопределено.
СтроковоеПредставление = Формат(Год,"ЧГ = 0");
// СтроковоеПредставление = "2004" Поэтому выражение Реквизит.Наименование будет выдавать
// длина строки - 4 символа ошибку, если реквизиту «Реквизит» не присвоено значение ссылки на
один из двух справочников, выбранных в типе этого реквизита.
Чтобы изменить преобразование чисел к строке по умолчанию,
нужно для информационной базы установить региональные настройки Какие особенности имеют общие модули в 8.0?
(например, параметр «Группировка» установить в ноль). Для этого В общих модулях конфигурации могут использоваться только
следует воспользоваться командой меню процедуры и функции общих модулей.
Администрирование | Региональные настройки ИБ ... В них не могут использоваться процедуры, функции и переменные
модуля приложения и модуля внешнегосоединения. Кроме того, в
Если стоит задача получения строкового представления текущего
общих модулях допускается определение только процедур и функций
года, можно воспользоваться встроенной функцией формат, указав в ее
и не допускается определение переменных.
параметре соответствующую форматную строку:
Таким образом, общие модули представляют собой набор
доступных в конфигурации процедур и функций и не имеют
Формат(ТекущаяДата(), "ДФ = птг")
хранимого состояния. Это позволяет использовать их не только в
:
| клиентском приложении и внешнем соединении, но и на сервере
1С:Предприятия.
Более подробную информацию можно найти на диске ИТС в статье
"Особенности форматирования значений". Чем отличается значение типа Неопределено и значение типа
Null?
Допускает ли версия 8.0 два сеанса работы для одного Значение типа Неопределено используется, прежде всего, как
значение по умолчанию (незаданное значение) для полей с составным
пользователя одновременно?
типом. Например, если есть реквизит, который имеет составной тип,
Да, в версии 8.0 одновременно может быть запущено два и более
включающий СправочникСсылка.Сотрудники и
сеансов работы с одним пользователем системы. Наличие такой
СправочникСсылка.Клиенты, то значением этого реквизита по
возможности весьма полезно. Например, пользователь, может
умолчанию будет Неопределено. Также это значение используется и
запустить выполнение длительной операции в одном сеансе и,
в других случаях для обозначения неуказанного значения.
запустив второй сеанс, продолжать работать с системой.
Значение типа Null используется при работе с таблицами
прикладных объектов. Оно обозначает отсутствие значения поля в
Что будет результатом вычитания двух значений типа Дата?
выборке. Прежде всего, оно используется в результатах запросов
В версии 8.0 значение типа Дата содержит как дату, так и время с
выполняющих левое или правое соединение. Поля невыбранных
точностью до секунды. Поэтому результатом вычитания двух
записей таблиц участвующих в таких соединениях будут иметь
значений типа Дата будет число - разница в секундах.
значение Null. Кроме того, значение типа Null будет иметь, например,
Для получения следующей даты нужно прибавить к дате
количество секунд в дате.

636
637
Вопросы при переходе с версии 7.7
Приложения

Можно ли обращаться к переменным, процедурам и функциям
реквизит иерархического справочника для элементов-групп, если в модуля объекта «снаружи» объекта?
метаданных указано, что этот реквизит используется только для В версии 8.0 любая переменная, процедура и функция модуля
элементов, не являющихся группами. объекта (документа, справочника, обработки, формы и т.д.) может
быть объявлена как экспортируемая. Для этого достаточно в ее
объявлении указать слово Экспорт:
Почему дата отображается со временем?
В 1С:Предприятии 8.0 значение типа Дата всегда включает в себя
время с точностью до секунды. Если в конкретных полях прикладных Процедура Печать(ТабличныйДокумент) Экспорт
объектов или форм задается хранение даты без времени, то это
КонецПроцедуры
описывает только область допустимых значений поля. To есть при
присвоении устанавливается значение со временем 00:00:00. Само
После этого к таким переменным, процедурам и функциям можно
значение не содержит информации о том, может ли поле, где оно
обращаться так же, как и к системным свойствам и методам объектов:
хранится, содержать время или нет.
Также как и число не хранит информации о том, может ли поле, где
оно хранится, содержать дробные числа. Оно может быть только ДокументОбъект.Записать(); //Записать документ
ДокументОбъект.Печать(ТабличныйДокумент); //Сформировать печатную форму
фактически целым или дробным. Точно так же и дата может
фактически содержать время отличное от 00:00:00 или содержать
Следует помнить о том, что, поскольку такие переменные,
время равное 00:00:00.
процедуры и функции описаны в модуле объекта, обращение к ним
При отображении реквизита объекта в табличном поле и в поле
возможно только как к свойствам и методам объекта встроенного
ввода система использует имеющуюся информацию о допустимом
языка, вида «Объект». Объекты встроенного языка других видов
типе значений и отображает дату без времени. Однако если
(«Ссылка», «Выборка», «Список» и т.д.) не будут иметь аналогичных
отображение значения происходит без непосредственной связи с
свойств и методов:
объектом, то используется стандартное форматирование значения типа
Дата. При этом отображается и дата и время.
ДокументОбъект.Печать(ТабличныйДокумент); //правильно
Например, это происходит при заполнении табличного документа
или при выводе значения в окно сообщений. Чтобы установить
ДокументСсылка.Печать(ТабличныйДокумент); //ошибка!
желаемое форматирование, можно или использовать функцию
Формат() или установить форматную строку, если эта возможность
Более подробную информацию можно найти в главе
предусмотрена там, где отображается значение. Свойство Формат
«Манипулирование данными объектов» на странице 561.
может быть, задано, например, для ячейки табличного документа, для
элемента управления Надпись и т.д.
Почему журнал регистрации пустой?
По умолчанию журнал регистрации в системе 1С:Предприятия 8.0
отключен. Для его включения нужно выполнить следующее:

• запустить конфигуратор
• открыть меню
Администрирование | Настройка журнала регистрации...
• настроить параметры регистрируемых событий


639
638
[риложения


нажать «ОК».
Например, форма документа будет поддерживать
функциональность, ориентированную на редактирование документа,
если в качестве ее основного реквизита выбрано значение типа
В каком порядке обходятся элементы соответствия циклом Для
ДокументОбъект.<имя>.
каждого.
Таким образом, при выборе соответствующих типов реквизитов
При использовании конструкции Для Каждого ... Из ... Цикл ...
любая форма может использоваться для редактирования и просмотра
КонецЦикла элементы соответствия обходятся в произвольном
любых данных.
порядке.
При создании форм с помощью конструкторов в форме
размещаются реквизиты и элементы управления, в зависимости от ее
Можно ли программно «выгонять» пользователей из
назначения, выбранного в конструкторе, однако при необходимости
1С:Предприятия 8.0?
разработчик может реализовать в форме любую функциональность.
Да, можно.
Более подробную информацию можно найти в разделах «Данные и
Для этого следует использовать процедуру глобального контекста элементы управления» на странице 502 и «Механизм основных форм»
ПрекратитьРаботуСистемы(). Ее выполнение приведет к тому, что на странице 542.
работа системы будет завершена независимо от наличия модальных
диалогов, открытых редактируемых форм документов, справочников и
Выполняется ли автоматическое обновление списков в формах?
т.д. При этом не будут вызваны процедуры-обработчики событий
Да, выполняется, но не всегда.
завершения работы системы.
В 1С:Предприятии 8.0 автоматическое обновление списков в
формах по умолчанию выполняется, только в том случае, когда данные
Интерфейсные объекты изменяются в текущем сеансе в клиентском приложении.
Если пользователь хочет видеть в списках изменения, вносимые
Чем в 1С:Предприятии 8.0 отличаются формы справочников, другими пользователями, то ему необходимо нажимать кнопку
документов и других объектов? обновления в командной панели списка или установить режим
Механизм форм в 1С:Предприятии 8.0 позволяет в любой форме автоматического обновления списка с определенной периодичностью.
Этот режим устанавливается в окне настройки списка.
отображать и редактировать любые данные. Принадлежность форм в
конфигурации к конкретным объектам метаданных необходима для Режим устанавливается для каждого списка независимо.
удобства организации структуры прикладного решения. To есть форма Рекомендуется устанавливать этот режим только для тех списков,
которые действительно необходимо периодически обновлять. Это
в конфигурации только "принадлежит" объекту метаданных и может
позволить избежать лишней нагрузки на систему, особенно в
использоваться в качестве основной формы для просмотра списка,
многопользовательском режиме работы.
редактирования или выбора. Содержимое формы никак не
определяется тем, к какому объекту метаданных относится форма и
Можно ли в формах списков устанавливать отбор и сортировку по
выбрана ли форма в качестве основной.
нескольким полям?
Функциональность формы определяется исключительно
Во всех динамических списках программно можно устанавливать
реквизитами формы и связанными с ними элементами управления. В
отбор и сортировку по любым комбинациям полей. Пользователю по
большинстве случаев функциональность формы обеспечивается за
умолчанию система предлагает набор доступных для установки отбора
счет выбора основного реквизита формы. Он определяет наличие
и сортировки полей, исходя из возможности выполнять отбор и
расширения формы и обеспечивает специфическое поведение формы
для конкретного прикладного объекта.



641
Вопросы при переходес версии 7.7
!ложения

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



643
642
риложения Вопросы при переходесверсин 7.7

Чтобы выполнять поиск по другой колонке, нужно сменить Прикладные объекты
текущее упорядочивание списка.
Следует сказать, что поиск в динамическом списке выполняется
Как узнать (проверить) тип значения документа, справочника?
среди десятков и сотен тысяч записей базы данных. Он выполняется не
В версии 8.0 для работы с типами прикладных объектов
сразу, а с некоторой задержкой, таким образом, чтобы не выполнять
используются не их строковые наименования, а специальный тип
поиск при каждом нажатии символа.
"Тип". Значение типа Тип может быть получено функцией Тип(), у
Так как поиск ведется по той же колонке, по которой установлена которой в качестве параметра указано имя требуемого типа.
сортировка, то после выполнения поиска пользователь видит не только Чтобы узнать тип значения переменной нужно определить ее тип
одну строку с указанными символами в начале, но и соседние строки, функцией ТипЗнч() сравнить с результатом функции Тип():
имеющие такое же начало. Это позволяет эффективно использовать
поиск даже при больших объемах информации отображаемой в списке. Если ТипЗнч(Основание) = Тип("ДокументСсылка.ПриходнаяНакладная") Тогда
...//Переменная Основание имеет тип значения ДокументСсылка.ПриходнаяНакладная
КонецЕсли;
Не отображается новое содержимое табличного поля при
программном изменении источника данных.
О типах, описывающих прикладные объекты, можно прочитать в
Элемент управления табличное поле имеет особенное от других
главе «Виды объектов встроенного языка, предназначенные для
поведение при смене источника данных. работы с данными прикладных объектов конфигурации» на странице
Если источник данных меняется интерактивно, в конфигураторе, 551.
платформа автоматически создает в табличном поле колонки,
соответствующие новому источнику данных. Этот процесс Как в форме списка справочника получить ссылку на текущий
разработчик может наблюдать своими глазами. элемент?
Однако если происходит программное изменение источника Для получения ссылки на текущий элемент справочника можно
обратиться к свойству ТекущаяСтрока элемента управления
данных табличного поля, платформа не создает колонки
ТабличноеПоле. Например:
самостоятельно. Создание колонок перекладывается на плечи
разработчика, поскольку подразумевается, что разработчик может
желать создать собственный набор колонок табличного поля. Сообщить("Текущий элемент:" +ЭлементыФормы.СдравочникСписок.ТекущаяСтрока
Поэтому, для того, чтобы после смены источника данных новые
Другой способ - обратиться к полю Ссылка текущих данных
данные были отражены в табличном поле, нужно создать колонки
табличного поля:
табличного поля. Сделать это можно, например, вызвав метод
СоздатьКолонки(), который удаляет все текущие колонки и создает
Сообщить("Текущий элемент:" +
новые в соответствии с новым источником данных.
_________________ЭлементыФормы.СправочникСписок.ТекущиеДанные.Ссылка);
Пример смены источника данных у табличного поля можно
посмотреть в процедуре «ОстаткиМатериаловПриИзменении» в
Для списков объектных данных (Справочников, Документов,...)
модуле формы документа «ПриходнаяНакладная» в разделе эти способы равнозначны, так как поле Ссылка является
«Изменение источника данных табличного поля» на странице 516. идентификатором записи.
Более подробную информацию можно найти на диске ИТС в статье
"Программное изменение источника данных, отображаемых в
табличном поле".



645
Приложения Вопросы при переходе свепсии 7 7

При обращении к спискам регистров свойство ТекущаяСтрока Для получения более подробной информации можно посмотреть
главу «Объект конфигурации регистр сведений» на странице 120, а
будет выдавать уже ключ записи регистра, который состоит из
также статьи на диске ИТС: "Периодические регистры сведений" и
нескольких полей.
"Проектирование структуры периодических регистров сведений".
Таким образом, свойство ТекущаяСтрока для всех типов данных
выдает значение, идентифицирующее текущую строку.
Почему в 8.0 нет возможности интерактивно открыть форму
элемента справочника только для просмотра?
Для чего служит флажок «Автопорядок по коду» у плана счетов?
В версии 8.0 при открытии формы объекта (документа, элемента
Свойство «Автопорядок по коду» используется для того, чтобы
справочника и т.д.) не выполняется (как раньше) блокировка объекта
указать системе, что упорядочивание по полю «Порядок» должно
от изменения другими пользователями. Поэтому два пользователя
всегда подставляться в тех случаях, когда пользователь или
могут, например, открыть один и тот же документ одновременно.
разработчик выбирает упорядочивание по коду. Его нужно Блокировка устанавливается при начале редактирования данных
использовать, прежде всего, тогда, когда с точки зрения пользователя объекта в форме. Если объект уже заблокирован другим
нужно упорядочивать план счетов по коду с учетом разделителей кода пользователем, то при попытке начала редактирования будет выдано
счета. Например, если упорядочивать по коду счета, то счета будут соответствующее сообщение.
располагаться так:
Таким образом, нет необходимости в специальном режиме
«10.11» открытия форм объектов для просмотра. Форма объекта может быть
«10.2» открыта из любого режима программы (из списка, из отчета в качестве
расшифровки и т.д.) без указания того, предполагается ли выполнять
Это правильно с точки зрения сортировки строк, но не
редактирование или нет.
соответствует логическому смыслу кодов.
Но если заданы значения поля «Порядок»: «10.11» и «10. 2» и
установлено свойство «Автопорядок по коду», то при выборе
упорядочивания по коду пользователь будет, фактически, получать
порядок, учитывающий разделители:
«10.2»
«10.11».
Если свойство не установить, то нужно будет в явном виде
выбирать упорядочивание по полю «Порядок».

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




646 647
Универсальные коллекции значений
Глава 2. Приемы разработки, Использование объекта Структура - процедура «РозничнаяЦена»
перечисленные в книге в общем модуле «РаботаСоСправочниками» в разделе «Создание
функции РозничнаяЦена()» на странице 124.
Использование объекта Массив - список документа
Встроенный язык «ОказаниеУслуги» в разделе «Изменение данных табличного поля
путем установки типа значения» на странице 520.
Использование функции КонецДня() - процедура
Интерфейсные объекты
«РейтингУслуг» в модуле формы отчета «РейтингУслуг» в разделе
«Отчет Рейтинг услуг» на странице 173.
Вычисляемое значение в поле ввода строки табличного поля -
процедура «МатериалыКоличествоПриИзменении» в модуле формы
Глобальный контекст документа «ПриходнаяНакладная» в разделе «Создание процедуры
обработки события в модуле формы» на странице 74.
Сериализация объектов 1С:Предприятия - процедуры
Создание обработчиков событий элементов управления -
«ЗаписатьСообщениеСИзменениями»
процедура «МатериалыКоличествоПриИзменении» в модуле формы
документа «ПриходнаяНакладная» в разделе «Создание процедуры
и
обработки события в модуле формы» на странице 74.
«ПрочитатьСообщениеСИзменениями» в модуле узла плана обмена
Обработка нескольких событий одной процедурой - модуль
«ОбменСФилиалами» в разделе «Создание процедуры записи данных»
формы документа «ПриходнаяНакладная» в разделе «Создание
на странице 407.
процедуры обработки события в общем модуле» на странице 77.
Использование макета для вывода в табличный документ -
Общие объекты процедура «РеестрДокументовОказаниеУслуги» в модуле формы
отчета «РеестрДокументовОказаниеУслуги» в разделе «Отчет
Использование объекта ПостроительОтчета - модуль отчета
РеестрДокументовОказаниеУслуги» на странице 166.
«Универсальный» в разделе «Создание универсального отчета» на
Управление группировками при выводе в табличный документ
странице 211.
процедура «ВыручкаМастеров» в модуле формы отчета
Чтение и запись XML документов - процедура «ВыручкаМастеров» в разделе «Отчет ВыручкаМастеров» на странице
183.
«ЗаписатьСообщениеСИзменениями» в модуле узла плана обмена
«ОбменСФилиалами» в разделе «Создание процедуры записи данных» Работа с элементом управления Список выбора - модуль формы
на странице 407. отчета «РейтингКлиентов» в разделе «Создание отчета
РейтингКлиентов» на странице 198.
Работа с объектом Файл - процедуры
Заполнение диаграммы данными - процедура «Сформировать» в
«ЗаписатьСообщениеСИзменениями»
модуле формы отчета «РейтингКлиентов» в разделе «Создание отчета
РейтингКлиентов» на странице 198.
и
«ПрочитатьСообщениеСИзменениями» в модуле узла плана обмена
«ОбменСФилиалами» в разделе «Создание процедуры записи данных»
на странице 407.
Работа с объектом ДиалогВыбораФайла - процедуры модуля
формы обработки «ОбменСОтделениями» в разделе «Программный
обмен в распределенной информационной базе» на странице 433.
Использование объекта ОписаниеТипов - список документа
«ОказаниеУслуги» в разделе «Изменение данных табличного поля
путем установки типа значения» на странице 520.
649
Приемы разработки, перечисленные в


Использование сводной таблицы - модуль отчета «ВариантыНоменклатуры» в разделе «Доработка справочника
ВариантыНоменклатуры» на странице 269.
«Универсальный» в разделе «Создание универсального отчета» на
странице 211. Использование подключаемых обработчиков изменения
данных формы - форма элемента справочника
Вывод данных в сводную диаграмму - отчет
«ВариантыНоменклатуры» в разделе «Доработка справочника
«ВыручкаМастеров2» в разделе «Отчет ВыручкаМастеров2» на
ВариантыНоменклатуры» на странице 269.
странице 227.
Организация подбора - форма документа «ПриходнаяНакладная»
Заполнение диаграммы Ганта данными - процедура
в разделах «Одиночный подбор», «Множественный подбор» и
«КнопкаСформироватьНажатие» в модуле отчета
«Подбор с использованием множественного выбора» на страницах
«ДиаграммаНачислений» в разделе «Создание отчета
488, 490 и 490 соответственно.
ДиаграммаНачислений» на странице 366.
Изменение источника данных табличного поля - список
Использование элемента управления Переключатель - список
документа «ПриходнаяНакладная» в разделе «Изменение источника
документа «ПриходнаяНакладная» в разделе «Изменение источника
данных табличного поля» на странице 516.
данных табличного поля» на странице 516, и список документа
Изменение данных табличного поля путем установки типа
«ОказаниеУслуги» в разделе «Изменение данных табличного поля
значения - список документа «ОказаниеУслуги» в разделе
путем установки типа значения» на странице 520.
«Изменение данных табличного поля путем установки типа значения»
Работа с панелями и страницами панелей формы - форма
на странице 520.
элемента справочника «Номенклатура» в разделе «Доработка
Вычисляемая колонка в табличном поле - список справочника
справочника Номенклатура» на странице 261.
«Номенклатура» в разделе «Вычисляемые колонки в списках» на
Использование связи по типу - форма элемента справочника
странице 524.
«Номенклатура» в разделе «Доработка справочника Номенклатура» на
Оформление строк табличного поля - список справочника
странице261.
«Номенклатура» в разделе «Оформление строк табличного поля» на
Использование связи по владельцу - форма элемента странице 527.
справочника «Номенклатура» в разделе «Доработка справочника
Использование вариантов стандартного оформления макетов -
Номенклатура» на странице 261, и форма документа
модуль формы отчета «Универсальный2» в разделе «Отчет
«ПриходнаяНакладная» в разделе «Доработка документа
Универсальный2» на странице 216 .
ПриходнаяНакладная» на странице 271.
Получение итога табличного поля по колонке - форма
Использование связи по регистратору - форма документа
документа «ОказаниеУслуги» в разделе «Редактирование формы
«ПриходнаяНакладная» в разделе «Связанные списки» на странице документа ОказаниеУслуги» на странице 114.
512.
Работа с запросами
Связь одного табличного поля со строкой другого табличного
поля - форма элемента справочника «Номенклатура» в разделе
Использование ключевого слова ВЫБРАТЬ - процедура
«Доработка справочника Номенклатура» на странице 261, и форма
«РеестрДокументовОказаниеУслуги» в модуле формы отчета
документа «ПриходнаяНакладная» в разделе «Связанные списки» на
«РеестрДокументовОказаниеУслуги» в разделе «Отчет
странице 512.
РеестрДокументовОказаниеУслуги» на странице 166.
Связь табличного поля с объектом, в форме которого оно
расположено - форма элемента справочника



651
650
Приемы разработки, перечисленные в книге


Получение данных регистра накопления запросом - процедура
Использование ключевого слова ИЗ - процедура
«РейтингУслуг» в модуле формы отчета «РейтингУслуг» в разделе
«РеестрДокументовОказаниеУслуги» в модуле формы отчета «Отчет Рейтинг услуг» на странице 173.
«РеестрДокументовОказаниеУслуги» в разделе «Отчет
Получение данных регистра сведений запросом - процедура «» в
РеестрДокументовОказаниеУслуги» на странице 166.
модуле формы отчета «ПереченьУслуг» в разделе «Отчет
Использование ключевого слова КАК - процедура
ПереченьУслуг» на странице 191.
«РеестрДокументовОказаниеУслуги» в модуле формы отчета
Получение данных регистра бухгалтерии запросом - отчет
«РеестрДокументовОказаниеУслуги» в разделе «Отчет
«ОборотноСальдоваяВедомость» в разделе «Создание отчета
РеестрДокументовОказаниеУслуги» на странице 166.
ОборотноСальдоваяВедомость» на странице 312.
Использование ключевого предложения УПОРЯДОЧИТЬ ПО -
процедура «РеестрДокументовОказаниеУслуги» в модуле формы Получение данных плана счетов запросом - отчет
«ОборотноСальдоваяВедомость» в разделе «Создание отчета
отчета «РеестрДокументовОказаниеУслуги» в разделе «Отчет
ОборотноСальдоваяВедомость» на странице 312.
РеестрДокументовОказаниеУслуги» на странице 166.
Использование ключевого предложения ЛЕВОЕ Получение данных перерасчета запросом - отчет «Перерасчет» в
СОЕДИНЕНИЕ ПО - процедура «РейтингУслуг» в модуле формы разделе «Иллюстрация механизмов вытеснения и зависимости от
базы» на странице 345, и процедура «ПерерасчитатьНачисления» в
отчета «РейтингУслуг» в разделе «Отчет Рейтинг услуг» на странице
общем модуле «ПроведениеРасчетов» в разделе «Выполнение
173.
перерасчета записей регистра» на странице 359.
Использование ключевого слова ГДЕ - процедура
Получение данных графика регистра расчета запросом -
«РейтингУслуг» в модуле формы отчета «РейтингУслуг» в разделе
процедура «РасчитатьНачисления» в общем модуле
«Отчет Рейтинг услуг» на странице 173.
«ПроведениеРасчетов» в разделе «Создание процедуры расчета
Использование ключевого слова ИТОГИ - процедура
записей регистра Начисления» на странице 349.
«РейтингУслуг» в модуле формы отчета «РейтингУслуг» в разделе
Получение данных базы регистра расчета запросом - процедура
«Отчет Рейтинг услуг» на странице 173.
«РасчитатьНачисления» в общем модуле «ПроведениеРасчетов» в
Использование ключевого слова ИЕРАРХИЯ - процедура
разделе «Создание процедуры расчета записей регистра Начисления»
«ПереченьУслуг» в модуле формы отчета «ПереченьУслуг» в разделе
на странице 349.
«Отчет ПереченьУслуг» на странице 191.
Получение данных регистра расчета запросом - отчет
Использование ключевого предложения ДЛЯ ИЗМЕНЕНИЯ -
«НачисленияСотрудникам» в разделе «Создание отчета
процедура «ОбработкаПроведения» документа «ОказаниеУслуги» в
НачисленияСотрудникам» на странице 357.
разделе «Оптимизация документа ОказаниеУслуги» на странице 238.
Получение данных фактического периода действия записей
Получение данных документов запросом - процедура
регистра расчета запросом - процедура
«РеестрДокументовОказаниеУслуги» в модуле формы отчета
«КнопкаСформироватьНажатие» в модуле отчета
«РеестрДокументовОказаниеУслуги» в разделе «Отчет
«ДиаграммаНачислений» в разделе «Создание отчета
РеестрДокументовОказаниеУслуги» на странице 166.
ДиаграммаНачислений» на странице 366.
Получение данных справочника запросом - процедура
Задание параметров виртуальной таблицы источника -
«РейтингУслуг» в модуле формы отчета «РейтингУслуг» в разделе
процедура «РейтингУслуг» в модуле формы отчета «РейтингУслуг» в
«Отчет Рейтинг услуг» на странице 173.
разделе «Отчет Рейтинг услуг» на странице 173.




653
652
Приемы разработки, перечисленные в книге


Как выбрать данные из нескольких таблиц - процедура Обход многоуровневых группировок в результате запроса -
«РейтингУслуг» в модуле формы отчета «РейтингУслуг» в разделе процедура «ВыручкаМастеров» в модуле формы отчета
«ВыручкаМастеров» в разделе «Отчет ВыручкаМастеров» на странице
«Отчет Рейтинг услуг» на странице 173.
183.
Как выбрать данные, входящие в указанный период -
процедура «РейтингУслуг» в модуле формы отчета «РейтингУслуг» в Получение итогов по всем датам в выбранном периоде -
процедура «ВыручкаМастеров» в модуле формы отчета
разделе «Отчет Рейтинг услуг» на странице 173.
«ВыручкаМастеров» в разделе «Отчет ВыручкаМастеров» на странице
Получение данных регистра накопления периодами - процедура
183.
«ВыручкаМастеров» в модуле формы отчета «ВыручкаМастеров» в
разделе «Отчет ВыручкаМастеров» на странице 183. Вычисляемое поле в результате запроса - смотри процедуру
«Сформировать» в модуле формы отчета «РейтингКлиентов» в
Вычисляемое поле в источнике запроса - процедура
разделе «Создание отчета РейтингКлиентов» на странице 198.
«Сформировать» в модуле формы отчета «РейтингКлиентов» в разделе
Выгрузка результата запроса в таблицу значений - смотри
«Создание отчета РейтингКлиентов» на странице 198.
модуль формы отчета «РейтингКлиентов» в разделе «Создание отчета
Передача списка значений в параметры виртуальной таблицы
РейтингКлиентов» на странице198.
- процедура «ОбработкаПроведения» документа «ОказаниеУслуги» в
Выгрузка результата запроса в список значений - смотри
разделе «Оптимизация документа ОказаниеУслуги» на странице 238, и
обработчик события «ОбработкаПроведения» документа
процедура «ОстаткиМатериаловПоСвойствам» в форме отчета
«НачисленияСотрудникам» в разделе «Создание процедуры расчета
«ОстаткиМатериаловПоСвойствам» в разделе «Отчет
записей регистра Начисления» на странице 349.
ОстаткиМатериаловПоСвойствам» на странице 277.
Передача результата запроса в параметры виртуальной
Прикладные объекты
таблицы - процедура «ОбработкаПроведения» документа
«ОказаниеУслуги» в разделе «Оптимизация документа Обращение к табличной части и данным строки табличной
части в форме документа - процедура
ОказаниеУслуги» на странице 238.
«МатериалыКоличествоПриИзменении» в модуле формы документа
Динамическое формирование текста запроса - процедура
«ПриходнаяНакладная» в разделе «Создание процедуры обработки
«ОстаткиМатериаловПоСвойствам» в форме отчета
события в модуле формы» на странице 74.
«ОстаткиМатериаловПоСвойствам» в разделе «Отчет
Обход табличной части документа - процедура
ОстаткиМатериаловПоСвойствам» на странице 277.
«ОбработкаПроведения» в модуле документа «Приходная накладная»
Вывод результата запроса в табличный документ - процедура
в разделе «Создание движений документа ПриходнаяНакладная» на
«РеестрДокументовОказаниеУслуги» в модуле формы отчета
странице 89.
«РеестрДокументовОказаниеУслуги» в разделе «Отчет
Формирование и запись движений документа в модуле
РеестрДокументовОказаниеУслуги» на странице 166.
документа - процедура «ОбработкаПроведения» в модуле документа
Получение промежуточных итогов - процедура
«Приходная накладная» в разделе «Создание движений документа
«ВыручкаМастеров» в модуле формы отчета «ВыручкаМастеров» в
ПриходнаяНакладная» на странице 89.
разделе «Отчет ВыручкаМастеров» на странице 183.
Формирование движений по регистру накопления остатков -
Управление порядком вывода итогов в результате запроса -
процедура «ОбработкаПроведения» в модуле документа «Приходная
процедура «ВыручкаМастеров» в модуле формы отчета накладная» в разделе «Создание движений документа
«ВыручкаМастеров» в разделе «Отчет ВыручкаМастеров» на странице ПриходнаяНакладная» на странице 89.
183.
Приложения


Формирование движений по оборотному регистру накопления
- процедура «ОбработкаПроведения» в модуле документа
«ОказаниеУслуги» в разделе «Изменение процедуры проведения
документа ОказаниеУслуги» на странице 157.
Формирование движений документа по регистру бухгалтерии -
процедура «ОбработкаПроведения» в модуле документа
«ПриходнаяНакладная» в разделе «Создание движений документа
ПриходнаяНакладная» на странице 303.
Формирование движений документа по регистру расчета -
смотри процедуру «ОбработкаПроведения» документа
«НачисленияСотрудникам» в разделе «Создание документа
НачисленияСотрудникам» на странице 341.
Получение последних значений ресурсов периодического
регистра сведений на указанную дату - процедура «РозничнаяЦена»
в общем модуле «РаботаСоСправочниками» в разделе «Создание
функции РозничнаяЦена()» на странице 124.
Обращение к значению перечисления - процедура
«ОбработкаПроведения» в модуле документа «ОказаниеУслуги» в
разделе «Изменение процедуры проведения документа
ОказаниеУслуги» на странице 134.
Расчет записей регистра расчета - раздел «Создание процедуры
расчета записей регистра Начисления» на странице 349.
Перерасчет записей регистра расчета - процедура
«ПерерасчитатьНачисления» в общем модуле «ПроведениеРасчетов» в
разделе «Выполнение перерасчета записей регистра» на странице 359.
Организация обмена данными на основе механизма
универсального обмена данными - раздел «Универсальный
механизм обмена данными» на странице 400.
Организация обмена данными на основе механизма
распределенных информационных баз - раздел «Механизм
распределенных информационных баз» на странице 426.
Ввод на основании - документ «ОказаниеУслуги» в разделе «Ввод
на основании» на странице 493.
Использование объекта КритерийОтбора - в разделе «Отбор
объектов, введенных на основании» на странице 497.

<<

стр. 11
(всего 11)

СОДЕРЖАНИЕ