Разработка в 1С 8.0
АнализПродаж
. Показывает объем продаж заданной группы товаров. Для получения данных будет использован регистр накопления Продажи.
Действия
"): "Поиск ссылок на объект" и "Поиск ссылок в объекте". Они показывают список других объектов конфигурации, связанных с текущим.Дерево конфигурации
представляет собой иерархический список всех объектов конфигурации. Раскрыв любую ветвь дерева, можно получить список объектов данного вида, например, список справочников. Если затем раскрыть любой справочник, то увидим его структуру и подчиненные объекты ? формы, макеты и т.д. Ниже на рисунке показано дерево конфигурации и рядом раскрытая ветвь справочника Номенклатура.Документы
используются для регистрации событий, происходящих в жизни предприятия. Документы сохраняются в информационной базе, имеют дату и время, а также номер. В нашей конфигурации будут созданы следующие документы:Документы хранят информацию о произошедших событиях в жизни организации, например, приходная накладная, платежное поручение. Документ характеризуется номером и датой. Обычно при проведении документа изменяется состояние регистров, например, при проведении приходной накладной увеличивается количество товара в регистре Остатки.

Хранилище конфигурации
. В хранилище содержится текущая разрабатываемая конфигурация и история ее изменения (версии).Интерфейсы
Представляют собой совокупность панелей интерфейса: меню и панели инструментов, например, интерфейсы Бухгалтер, Руководитель.
Языки
Языки интерфейса конфигурации, например, Русский, Английский, Украинский. В 1С:Предприятии 8.0 можно разрабатывать многоязычные конфигурации, рассчитанные на работу пользователей, говорящих на разных языках.Код:
ВЫБРАТЬ Наименование, ЗакупочнаяЦенаИЗ Справочник.Номенклатура
ГДЕ ЗакупочнаяЦена > 1300
Выборка = Справочники.Сотрудники.Выбрать ();
Пока Выборка.Следующий() Цикл
Если Выборка.Оклад > 10000 Тогда
Сообщить(Выборка.Наименование + " имеет оклад " + Выборка.Оклад);
КонецЕсли;
КонецЦикла;
Количество
.Константы
В константах хранятся редко изменяемые значения, например, название организации, ИНН, ФИО руководителя и т.д.
Конструктор для элементов управления
Конструктор движений документа
Конструктор форм
Конструктор меню
Конструктор печати
Конструктор ввода на основании
Конструктор выходной формы
Конструкторы объектов конфигурации
Критерии отбора
Нужны для отбора данных по определенному признаку. Например, по критерию отбора Контрагент можно выбрать все документы, относящиеся к заданному контрагенту.
Масштабируемость:
Номенклатура
. Содержит список товаров.Нумераторы
Нумераторы предназначены для единой (сквозной) нумерации документов нескольких видов. Например, нумератор Кадровый используется для присвоения номеров всем кадровым приказам.
Обработки
Производят некоторую обработку информации, содержащейся в базе данных, например, обработка РасчетНачислений, ЗакрытиеПериода.
Общие формы
Общие экранные формы не принадлежат конкретному объекту, а относятся к конфигурации в целом. Они могут использоваться в разных местах программы, например, форма ВводАдреса.
Общие картинки
Картинки, используемые на кнопках, формах и других интерфейсных объектах. Картинки можно рисовать с помощью редактора картинок.
Общие макеты
Общие макеты (шаблоны печатных форм) также не принадлежат конкретному объекту конфигурации, например, макет РеестрДокументов. Они используются в других программных модулях.
Общие модули
Содержат процедуры и функции, используемые в других программных модулях, например, общий модуль РегламентныеПроцедуры.
Общие отличия:
Основной
, для чего воспользуемся конструктором меню.Остатки
. Показывает остатки товаров на выбранном складе. Данные будут браться из регистра накопления Остатки.Отчеты
предназначены для отображения на экране и печати итоговых и детальных данных. Отчеты не хранят никаких данных в информационной базе, они лишь извлекают информацию из других объектов, обрабатывают ее и выводят результаты в выходную форму. В нашей простой конфигурации мы создадим всего два отчета:На основе информации из базы данных отчеты выдают печатные формы, содержащие детальную и сводную информацию. В качестве примера можно привести отчеты ОборотноСальдоваяВедомость, СписокСотрудников, АнализПродаж.

Перечисления
Перечисление ? это набор значений, заданный еще на этапе разработки прикладного решения, он не редактируется в режиме "Предприятие". Главное, что стоит понять, сама конфигурация рассчитана на определенные перечисления, например, на перечисление ТипКлиента со значениями Обычный и ОченьВажнаяПерсона. Для VIP-клиентов в программе может быть предусмотрена скидка.
Планы счетов
Содержат список счетов бухгалтерского или управленческо-го учета, например, планы счетов Стандартный, Управленческий, План GААР.
Планы видов характеристик
Предназначены для хранения дополнительных видов характеристик объектов, например, дополнительных свойств товаров (вес, цвет, размер). Новые виды характеристик можно вводить в режиме "Предприятие". Через этот объект также реализован механизм аналитического учета по субконто в бухгалтерском учете.
Планы видов расчета
Содержат виды расчета, объединенные по сходным признакам, к которым относятся одинаковые базовые виды расчета, одинаковые правила перерасчета, общие правила вытеснения по времени. В качестве примера можно привести планы видов расчета ОсновныеНачисления, Налоги.
Подсистемы
Предназначены для группировки других объектов конфигурации, например, подсистемы Кадры, Торговля, Маркетинг. Каждый объект может входить сразу в несколько подсистем. Подсистемы могут быть подчиненными друг другу.
Последовательности
Предназначены для обеспечения правильной последовательности проведения документов с учетом возможных исправлений "задним числом", например, последовательность ПартионныйУчет.
Разработка:
Регистрах накопления
хранится информация об остатках или оборотах, связанных с объектами предметной области. Нам понадобятся следующие регистры накопления:Регистры бухгалтерии
Хранят записи (проводки) основанные на определенном плане счетов, например, регистр бухгалтерии Управленческий.
Регистры накопления
Накапливают числовую информацию в разрезе заданных измерений, например, регистры ОстаткиТоваров, Продажи. Движения регистров накопления всегда связаны с документами (регистраторами) и обычно создаются в момент проведения документа.
Регистры расчета
Предназначены для хранения учетных записей сложных периодических расчетов, например, регистр расчета Удержания. Каждый регистр расчета основан на каком-либо плане видов расчета.
Регистры сведений
Предназначены для хранения любой информации об объектах в разрезе заданных измерений, например, регистр сведений ЦеныТоваров. Если требуется хранить историю изменения информации, то регистр сведений делается периодическим, например, регистр КурсыВалют.
Ресурс
Количество. Обратите внимание на то, что при указании типа данных для измерения Товар выбирается справочник Номенклатура. Так в простейшем случае настраиваются связи между объектами.Сумма. Регистр будет хранить объем продаж за период в разрезе контрагентов и товаров, т. е. это будет
Роли
Предназначены для определения прав пользователей, работающих с информационной базой, например, роли Кадровик, Администратор. Каждый пользователь может иметь несколько ролей.
Список пользователей
Чтобы пользователь имел возможность войти в систему, его необходимо зарегистрировать в списке пользователей, назначить ему интерфейс и доступные роли см. ниже. Администратор всегда может узнать, кто подключен к информационной базе в данный момент.
Справочники
предназначены для хранения условно-постоянной информации. Они используются в других объектах, например, документах, регистрах и отчетах. В нашем примере будут следующие справочники:В справочниках содержится условно-постоянная списковая информация, например, список товаров, список сотрудников. Такие сведения обычно характеризуются кодом и наименованием.

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

Исключение...КонецПопытки
можно вызвать функцию ОписаниеОшибки, которая возвращает сообщение о возникшей ошибке в виде строки. Эту строку можно выдать в окно сообщений, записать в журнал регистрации или выполнить другие действия.
, тогда она обрабатывается внешним обработчиком, а если его нет, выдается системное сообщение об ошибке.
Исключение
Изменения во встроенных функциях, свойствах и методах глобального контекста:
table width="100%" cellpadding="0" cellspacing="0">
table width="100%" cellpadding="0" cellspacing="0">
table width="100%" cellpadding="0" cellspacing="0">
Экспорт
, то она будет видна вне модуля. Экспортируемые переменные модуля приложения называются глобальными переменными, потому что они доступны в любом месте программы (кроме общих модулей). Чем меньше в вашей программе будет глобальных переменных, тем лучше.
Код:
//экспортируемыепеременныеПерем НачДата Экспорт;
Перем КонДата Экспорт;
Перем мПериодСтрокой; //локальная переменная модуля
...
//далее идут процедуры и функции
...
//а затем раздел основной программы
...

Перем НачДата Экспорт;
Перем КонДата Экспорт;
Перем мПериодСтрокой;
Процедура Печать(ТабДок=Неопределено) Экспорт
//эта процедура будет доступна как метод объекта ДокументОбъект
КонецПроцедуры
Функция ПолучитьГруппировку(РезультатЗапроса, ИмяГруппировки)
//это локальная процедура модуля
КонецФункции
ФункцияСокращенноеЕсли(РезультатУсловия, выражение1,выражение2)
Если РезультатУсловия Тогда //Истина
Возврат выражение1;
Иначе //Ложь
Возврат выражение2;
КонецЕсли;
КонецФункции

ПустаяСсылка= Справочники.Номенклатура.ПустаяСсылка();
н= 0;
Для Каждого СтрокаТЗ Из тзСостав Цикл

Для Каждого СтрокаТЗ Из тзСостав Цикл

н = 0;
Выборка = Справочники.Номенклатура.Выбрать();
н= 0;
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
КонецЦикла;

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

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

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

Логические выражения
В операторе Если, конструкциях «?(...)», а также в цикле Пока применяются логические выражения, т.е. такие, результат которых имеет тип «булево» с двумя значениями: Истина и Ложь. В логических выражениях могут применяться логические сомножители НЕ, И, ИЛИ (в порядке приоритета). Для задания правильного порядка вычисления рекомендуется расставлять скобки,
Модуль приложения
Модуль внешнего соединения
Модули форм
Модули прикладных объектов
Например:
//следующая процедура принимает табличный документ,
//а если ничего не передано,
//то она его создает и показывает на экране
Процедура Печать(ТабДок = Неопределено) Экспорт
Замечание. Null
.Объявление переменных
В переменных хранится промежуточная информация, необходимая для работы программы. Переменные обычно создаются автоматически при первом присвоении им значения, но можно объявлять их явно с помощью ключевого словаОбщие модули
Окно редактора
Окно текстового редактора при редактировании программных модулей выглядит следующим образом.Цвет фона и текста настраивается в параметрах. Там же можно указать шрифт, автоматический отступ, ширину табуляции и другие параметры.

Оператор Новый
Оператор Новый предназначен для создания объектов определенных типов, например, СписокЗначений, Структура и т.д. Заметьте, что данный оператор применяется только для тех типов, для которых допустимо создание новых значений. При объявлении переменных, ссылающихся на прикладные объекты, оператор Новый не используется.Ниже показываются различные варианты объявления переменных:

Печать
(ТабДок);//вызов процедуры Печать//_______________________

Перейти
. Метка может быть у любого исполняемого оператора. Она начинается со знака тильды («~»), далее идет имя метки, а затем двоеточие («:»), например:function doExpand(paraNum, imageNum) { if (paraNum.style.display=="none") {paraNum.style.display=""; imageNum.src="arrowdn.gif"} else {paraNum.style.display="none"; imageNum.src="arrowrt.gif"} }

можно передавать управление в пределах процедуры/функции или в пределах раздела основной программы модуля. Заметьте, что этим способом нельзя выйти из процедуры или функции.
будет полезен, если требуется выйти сразу из нескольких циклов.
Перем
.Тип переменной определяется по значению, которое она содержит. При помещении в переменную значения другого типа меняется и тип переменной, т.е. в языке поддерживается мягкая типизация.
Если переменную модуля объявить с ключевым словом
Поиск и замена текста
Текстовый редактор поддерживает поиск строки по тексту, для чего существуют следующие кнопки на панели инструментов:
С помощью меню «Правка
Заменить», или по кнопке
, которую можно сразу поместить на панель инструментов, производится замена одной строки текста на другую. Аналогично глобальному поиску, поддерживается глобальная замена строки по всей конфигурации или только по заданным объектам. 
Пока
предназначено для реализации циклов с неизвестным числом повторений. Цикл выполняется до тех пор, пока логическое выражение истинно. Если на очередном витке Цикла оно перестает выполняться (дает значение Ложь), то цикл прекращается.
Попытка
следует применять для внешних ошибок и при работе с базой данных, т.е. для тех ошибок, которые не являются ошибкой написания программы.

Прервать;
//досрочный выход из цикла, а для перехода на следующий виток цикла нужно применять оператор
и работает как следующая функция:

Следующий пример показывает нежелательное форматирование
//1-йпримерЕсли Состав.Количество()=0 Тогда
Предупреждение("Не указано ни одной строки!");
КонецЕсли;
//2-й пример
Если Сотр.Категория = Перечисления.Категории.Совместитель Тогда
//обработаем как совместителя
Иначе
//обычный сотрудник
КонецЕсли;
//3-й пример
Если выбор = 1 Тогда
Сообщить("Выбран 1-й пункт");
ИначеЕсли выбор = 2 или выбор = 3 Тогда
Сообщить("Выбран 2-й или 3-й пункт");
Иначе
Сообщить("Обработка этого пункта не предусмотрена");
КонецЕсли;
//явноеобъявление переменной модуля или процедуры/функции

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

Процедура
Печать(ТабДок)//_______________________
Продолжить;
//возьмем следующую строкуРазделение и слияние окон
Текстовый редактор позволяет одновременно работать с разными частями модуля. Для этого предназначено горизонтальное и вертикальное разделение окна, которое включается и выключается из меню «Окна».Другой возможностью управления окнами является их соединение друг с другом. Если перетащить окно с нажатой клавишей Shift, то его можно соединить с другим окном, например, для редактирования модуля отчета и его формы в одном окне. Соединять окна можно горизонтально или вертикально, а также в виде закладок внизу.
Шаблоны
Для ускорения ввода часто используемых конструкций можно использовать шаблоны, например, для блока «Если...КонецЕсли;» или «Процедура...КонецПроцедуры».Список всех шаблонов можно просмотреть в следующем окне.
Шаблоны можно разделить на группы. Двойной щелчок на шаблоне открывает окно для его редактирования. После набора нескольких символов, заданных в качестве строки замены, можно нажать Ctrl-Q и активизируется соответствующий шаблон, т.е. введенная строка будет заменена на текст шаблона.

Синтакс-помощник
При программировании часто возникает потребность вспомнить имя свойства или метода, а также параметры методов и возвращаемые значения функций. Эта информация содержится в Синтакс-помощнике, который можно вызвать по Ctrl-Fl или через контекстное меню.
Синтаксический контроль
По кнопке
можно произвести проверку модуля на наличие синтаксических ошибок. Если даже таких ошибок не будет найдено, то это не гарантирует, что программа будет работать правильно, поскольку могут возникать ошибки времени выполнения, которые невозможно обнаружить на этапе синтаксического контроля. Рекомендуется в параметрах включить автоматическую проверку модуля на синтаксические ошибки, которая будет всегда выполняться при его сохранении. Это позволит раньше обнаружить ошибку, и, следовательно, ее исправление обойдется дешевле. В 1С:Предприятии 8.0, как и в версии 7.7, есть возможность проверить все программные модули конфигурации на наличие синтаксических ошибок. Для этого нужно выбрать команду в меню «Конфигурация
Синтаксический контроль модулей». 
Системные перечисления и наборы значений
В 1 С:Предприятии 8.0 для улучшения понятности программ были введены системные перечисления и системные наборы значений.Например, ниже используется системное перечисление ОриентацияСтраницы и его значение Портрет:

~След
;Так делать не рекомендуется!

В контексте модуля формы
доступны реквизиты формы, а также ее свойства, методы и события. Если у формы назначен основной реквизит, то в модуле формы становятся доступны свойства и методы прикладного объекта, используемого в качестве основного реквизита.
table width="100%" cellpadding="0" cellspacing="0">
table width="100%" cellpadding="0" cellspacing="0">

table width="100%" cellpadding="0" cellspacing="0">
В контексте модуля прикладного объекта
есть доступ к реквизитам и табличным частям объекта, а также его методам и событиям. Например, в модуле документа РасходнаяНакладная доступны реквизиты документа и его табличные части, можно вызывать методы документа и обрабатывать события.
В контексте модуля приложения (или модуля внешнего соединения)
доступны экспортируемые переменные, процедуры и функции общих модулей.
В контексте общего модуля
доступны экспортируемые процедуры и функции других общих модулей. В этом контексте недоступны экспортируемые переменные, процедуры и функции модуля приложения.
В разделе объявления переменных определяются
ВызватьИсключение;
Закладки по тексту
Текстовый редактор поддерживает механизм закладок по тексту, что позволяет «запомнить» определенную строку в тексте, а потом быстро к ней вернуться.Механизм закладок по тексту реализуется с помощью следующих кнопок на панели инструментов:


Разработка в 1С 8.0
Автонумерация
Этот параметр заставляет систему автоматически присваивать номера для новых документов.
Цикл
ЦиклКонецЦикла ;

Длина
Устанавливает максимальную длину номера документа. Самая большая длина номера, которую можно установить, ? 50 символов.
ДокументМенеджер
Обеспечивает доступ к действиям над документами определенного вида как множеством объектов. Через методы этого объекта можно осуществлять поиск, получать выборку, создавать новый документ, обращаться к формам и макетам документа.
ДокументОбъект
Предоставляет доступ к документу с возможностью записи и проведения. Данный объект содержит методы, изменяющие документ в базе данных, например, метод Записать.
ДокументСписок
Объект для управления списком документов, отображаемым в форме. Позволяет управлять колонками, отбором и сортировкой в списке. Этот объект не может быть создан программно, он создается системой автоматически при размещении в форме табличного поля, отображающего список документов.
ДокументСсылка
Это специальный объект, однозначно идентифицирующий документ в базе данных и позволяющий обращаться к нему в режиме «только чтение». Значение данного типа хранится, например, в реквизитах других объектов, ссылающихся на документы данного вида. Через свойства и методы этого объекта можно прочитать реквизиты документа, обратиться к его табличным частям.
ДокументВыборка
Предоставляет возможность обхода (перебора) документов определенного вида. Объект этого типа возвращается методом Выбрать объекта ДокументМенеджер.
ДокументыМенеджер
Обеспечивает доступ к менеджерам всех документов конфигурации. Свойства этого объекта совпадают по имени с именами документов и содержат объекты типа ДокументМенеджер.
Форма документа
Основная экранная форма, представляющая документ на экране. Она необязательно должна совпадать по внешнему виду с печатной формой реального документа. Ее первейшая обязанность ? обеспечить удобный способ ввода и просмотра данных.
Форма группы
Отображает и позволяет редактировать сведения о группе справочника. Группы могут иметь другой состав реквизитов по сравнению с элементами.
Форма элемента
Отображает и позволяет редактировать сведения об одном элементе справочника. Если у справочника много реквизитов, то они могут быть распределены по закладкам.
Форма списка
Отображает список элементов справочника, содержит средства сортировки, поиска и отбора элементов. Из списка элементов можно открыть форму элемента (группы) или редактировать данные прямо в табличном поле. Это регулируется свойством табличного поля СпособРедактирования.
Данная экранная форма отображает список документов определенного вида и является аналогом журнала, содержащего документы одного вида.

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

Формы
Экранные формы предназначены для отображения отчета/обработки на экране. Это могут быть и различные дополнительные формы, предназначенные для ввода параметров или отображения результатов. В качестве примера можно назвать формы ВыборПериода и ФормаВложеннойТаблицы обработки КонсольЗапросов.
Графы журнала
В журнале документов могут быть созданы графы журнала, которые отображают информацию из документов Например, в журнале Торговля создана графа Контрагент.При настройке графы журнала указывается список реквизитов документов, из которых она будет отображать информацию Из каждого документа можно взять только один реквизит. Не рекомендуется смешивать в одной графе разнородную информацию, например, контрагента и сумму документа.
Элементы и группы
В первом случае все элементы иерархического справочника разделяются на «просто» элементы справочника и группы справочника. Группы могут отличаться по структуре от обычных элементов, т.е. могут содержать другой состав реквизитов. Для каждого реквизита указывается, относится ли он только к элементу, только к группе или к обоим. Примером иерархического справочника с группами может служить справочник Сотрудники, в котором есть группы Штатные, Совместители и Уволенные.
Клавиатуры
Клавиатура Apple
Клавиатура
Клавиатура PS/2
Клавиатура PS/2
Код:
//чтение значения из константыНазвание = Константы.НазваниеОрганизации.Получить();
// запись нового значения в константу
Константы.НазваниеОрганизации.Установить(НовоеНазвание);

//получаем объект для управления списком констант
Назв= Константы.НазваниеОрганизации.Получить();
СпрСотр = Справочники.Сотрудники;
ВсеДолжности = Справочники.Должности.Выбрать();
ДокНакл = Документы.РасходнаяНакладная;

//создаем набор из двух констант
//обратите внимание, что значений констант в наборе еще нет
КонстантаМенедже
р = КонстантыМенеджер.НазваниеОрганизации;//считываем значение константы из базы данных
Значение = КонстантаМенеджер.Получить();
//записываем новое значение константы в базу данных
КонстантаМенеджер.Установить(НовоеЗначение);

КонстантаМенеджер
Менеджер константы обеспечивает доступ к конкретной константе. Через него можно прочитать и установить ее значение с помощью методов Получить и Установить.
КонстантыМенеджер
= Константы;//получаем объект для управления одной константой
Объект предоставляет доступ к списку констант. Через этот объект можно перебрать все константы с помощью конструкции «Для Каждого» или получить объект КонстантаМенеджер для управления конкретной константой. Кроме того, данный объект позволяет создать объект КонстантыНабор для одновременного чтения и записи сразу нескольких констант.

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

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

Отличия в свойствах и методах:
Параметр «РежимПроведенияДокумента»:
Параметр «РежимЗаписиДокумента»:
Печать
(ТабДок); //вызывается приведенная выше процедура
ПередУдалением
Событие возникает перед непосредственным удалением элемента или группы справочника из базы данных. В обработчике события это действие можно отменить.
Событие возникает перед удалением документа из базы, независимо от того, программно или интерактивно он удаляется.

ПередЗаписью
Процедура-обработчик вызывается после начала транзакции, но до начала записи элемента справочника. В данном обработчике можно отказаться от записи элемента.
Это событие возникает перед выполнением записи объекта после начала транзакции, но до начала записи документа в базу данных.

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

ПриКопировании
Событие возникает при создании элемента справочника копированием. В обработчике события ПриКопировании можно вмешаться в этот процесс и более интеллектуально заполнить некоторые реквизиты элемента справочника.
Это событие возникает при создании документа копированием. В процедуреобработчике можно произвести дополнительные действия, например, присвоить новую дату и новый номер, заполнить реквизит Автор и т.д.

ПриУстановкеНовогоКода
Событие возникает в момент, когда выполняется установка нового кода элемента справочника.
ПриУстановкеНовогоНомера
Данное событие возникает в момент, когда выполняется установка нового номера документа.
ПриЗаписи
Событие возникает после записи элемента справочника в базу данных, но до окончания транзакции записи. В данном обработчике также можно отказаться от записи элемента.
Программное обеспечение
Windows XP
1С:Бухгалтерия 7.7
Доставка
Windows XP
Инсталляция ПО
Сист. блок ВА410
Сист. блок ВА410
Сист. блок NetVista
Сист. блок NetVista
Произвольная форма
Данная форма не вызывается системой автоматически, как предыдущие типы форм. Назначение произвольной формы и точки ее вызова определяет разработчик. Основное отличие произвольной формы от других состоит в том, что для нее не назначен основной реквизит, следовательно, контекст формы не включает дополнительные свойства и методы, характерные для основного реквизита.Реквизиты
Реквизиты отчета (обработки) содержат параметры формирования отчета (выполнения обработки). Эти реквизиты отличаются от реквизитов справочников тем, что они не сохраняются в базе данных. Например, реквизиты НачДата и КонДата у отчета АнализПродаж.
и подчиненный ему справочник РасчетныеСчета
Справочник Контрагенты и подчиненный ему справочник РасчетныеСчета с полями Банк, Номер, КоррСчет.
Справочник Номенклатура и табличная часть ЕдиницыИзмерения с полями ЕдиницаИзмерения и КоэффициентПересчета.

Справочник Сотрудники и табличная часть УтверждаемыеДокументы с полем Документ и флажком Утверждается. Заметим, что эту задачу также можно решить с использование регистров сведений, описанных в отдельной главе.

Выбор между подчиненным справочником и табличной частью зависит от назначения конфигурации. Если в будущем может возникнуть потребность создавать ссылки на такие сведения, то лучше завести подчиненные справочники СоставСемьи, Образование и ТрудоваяДеятельность.
Режим
. Если в обработчике события первому параметру присвоить значение Истина, тогда документ не будет проведен. Второй параметр позволяет узнать режим проведения документа: оперативный или неоперативный.Перед началом выполнения данной процедуры, если документ раньше сформировал движения, то они обычно очищаются системой автоматически.

Родитель
Ссылка на родительский элемент или группу. В выборку попадут только элементы, принадлежащие заданному элементу (группе). Параметр имеет смысл только для иерархических справочников.
В базе данных необходимо хранить
В базе данных необходимо хранить список расчетных счетов каждого контрагента. Почти наверняка в платежных документах будет необходимо, кроме контрагента, указывать его расчетный счет. Такая информация имеет четкую объектную природу и может быть идентифицирована как «Расчетный счет».Допустим, для справочника Номенклатура есть потребность хранить список единиц измерения для каждого товара с указанием коэффициента пересчета в основную единицу измерения. Эти сведения подбираются из справочника ЕдиницыИзмерения, который хранит все существующие в природе единицы измерений. Каждая строка такого подчиненного списка не имеет собственной объектной сущности, а нужна только для пересчета из одной единицы измерения в другую.
Допустим, встроенной системы задания прав пользователей не хватает для некоторых специальных приложений. Например, часто требуется разработать механизм утверждения документов разными пользователями. Тогда для сотрудника нужно хранить список документов, которые он может утверждать, и с этим отлично справится табличная часть УтверждаемыеДокументы справочника Сотрудники. Такая информация не имеет объектной природы, а просто связывает документ и сотрудника, поэтому вряд ли понадобится когдалибо в будущем создавать ссылки на нее.
Для справочника Сотрудники требуется хранить сведения о составе семьи сотрудника, т.е. вносить информацию о членах семьи и их родственных отношениях к сотруднику (муж, жена, сын, дочь и т.д.). Обычно эта списковая информация полностью подчинена элементу справочника Сотрудники, и возникает мысль о том, чтобы завести табличную часть. Но если подумать, то такая информация имеет четкую объектную природу и может быть идентифицирована как «Член семьи». Для некоторых приложений может потребоваться создавать ссылки на членов семьи сотрудника. Аналогичная ситуация наблюдается со сведениям об образовании и о предыдущих местах работы сотрудника.
СоздатьГруппу
();СоздатьЭлемент
();СправочникиМенеджер
Обеспечивает доступ ко всем справочникам конфигурации. Свойства этого объекта совпадают с именами справочников и содержат объекты типа СправочникМенеджер.
СправочникМенеджер
Обеспечивает доступ к операциям над справочником как множеством элементов. Через методы этого объекта можно осуществлять поиск, получать выборку, создавать новые элементы или группы, обращаться к формам и макетам справочника.
СправочникОбъект
Предоставляет доступ к элементу с возможностью записи. Данный объект содержит методы, влияющие на элемент в базе данных, например, методы Записать и Удалить.
СправочникСписок
Объект для управления списком элементов в табличном поле. Позволяет управлять колонками, отбором и сортировкой в списке.
Например, метод Скопировать существует не только у объекта СправочникСсылка, но и у самого объекта СправочникОбъект. Кроме того, у объекта СправочникМенеджер есть методы НайтиПоНаименованию и НайтиПоРеквизиту, которые действуют аналогично методу НайтиПоКоду и возвращают ссылку на найденный элемент или пустую ссылку, если элемент не найден.
СправочникСсылка
Данный объект однозначно идентифицирует элемент (группу) справочника и позволяет обращаться к нему в режиме «только чтение». Через свойства и методы этого объекта можно прочитать реквизиты элемента (группы), обратиться к его табличным частям. Значение этого типа хранится в реквизитах, ссылающихся на элементы данного справочника, например, в реквизите Сотрудник документа ПриемНаРаботу хранится ссылка на конкретный элемент справочника Сотрудники.
СправочникВыборка
Предоставляет возможность обхода (перебора) элементов справочника. Выборка может быть прямой или иерархической (если справочник многоуровневый).
Тип
Здесь выбирается тип значения для номера документа ? числовой или строковый. Выбор строкового типа номера бывает необходим, когда используется сложная система нумерации документов. При этом номер документа может включать, помимо цифр, также буквы и символы-разделители, например «К10-56».
Только элементы
Во втором случае иерархический справочник состоит только из элементов. Любой элемент может выполнять функцию группы, т.е. он может быть родительским элементом для других элементов этого же справочника. Например, по такому принципу можно организовать справочник Подразделения. В любой момент времени какойнибудь отдел может быть разделен внутри себя на несколько подотделов, и отразить это в справочнике не составит никакого труда. Другой пример ? справочник Районы, который отражает территориальное деление города. Элементы верхнего уровня представляют административные округа, на втором уровне содержатся районы, на третьем уровне ? микрорайоны.table width="100%" cellpadding="0" cellspacing="0">
table width="100%" cellpadding="0" cellspacing="0">
table width="100%" cellpadding="0" cellspacing="0">
table width="100%" cellpadding="0" cellspacing="0">
Услуги

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

Разработка в 1С 8.0
ActiveX
Кроме встроенных элементов управления, в 1С:Предприятии 8.0 есть возможность расположить в форме ActiveX-компоненты, написанные на других языках. Из таких компонентов можно назвать Windows Media Player, Microsoft Office Pivot Table и др..АвтоКонтекстноеМеню
Если в этом свойстве содержится значение Истина, то для элемента управления будет использовано автоматически сформированное контекстное меню, в противном случае необходимо указать свойство КонтекстноеМеню.
АвтоЗаголовок
Если это свойство содержит значение Истина, то к заголовку формы будет автоматически добавляться информация, определяемая основным реквизитом формы.
Данные
Это свойство содержит имя связанного реквизита формы или реквизита объекта. Для элементов управления, связанных с реквизитами объектов, изменение значения в элементе управления автоматически влечет изменение значения связанного реквизита.
Диаграмма
Элемент управления Диаграмма предназначен для показа статистических данных в наглядном графическом виде, что очень удобно для анализа. Диаграмма в 1С: Предприятии 8.0 может располагаться прямо в экранной форме, а не только в печатной форме (табличном документе).Существует возможность задать тип диаграммы: график, плоская и объемная гистограмма, круговая, изометрическая, биржевая и др. У диаграммы также может быть легенда, содержащая имена серий.Кроме всего прочего, на диаграмме работают расшифровки. Если два раза щелкнуть мышью на точке графика (или столбике), то можно получить более детальную информацию, конечно, если это предусмотрено в конфигурации.

ИмяСохраненияПоложенияОкна
Свойство позволяет сохранить параметры окна под определенным именем, которые восстанавливаются при следующем показе формы. Таким способом можно запомнить несколько вариантов подожения окна.
Индикатор
Индикатор показывает ход выполнения длительного процесса. Рекомендуется всегда его использовать во время выполнения процедур, требующих длительного времени. На пользователя это действует благотворно: он видит, что процесс идет, меньше нервничает и не прервет, чего доброго, работу программы. Но всетаки для того, чтобы пользователь мог прервать чрезмерно затянувшийся процесс (или «зависшую» программу), в теле цикла необходимо вызывать процедуру ОбработкаПрерыванияПользователя, подробнее о которой написано в документации.
ИзменениеРазмера
Признак, который разрешает или запрещает изменение размера окна.
К центру
правая и левая границы элемента привязываются к центру формы или другого элемента управления;К левой границе
элемент целиком перемещается вместе с перемещением левой границы области;
К правой границе
элемент целиком перемещается вместе с перемещением правой границы области;
Как не надо
делать. Для больших динамических списков было бы более рационально спроектировать специальный отчет Остатки с периодическим обновлением.Картинка
Картинка позволяет вывести в форму графическое изображение или анимацию в формате GIF. Встроенный язык имеет средства для загрузки картинок из файлов. Кроме того, картинки могут храниться в базе данных в полях типа ХранилищеЗначений. При расположении картинки в форме есть возможность задать поведение картинки при изменении размера (прокручивать, растягивать и т.д.). Дополнительно картинка может реагировать на щелчок мыши (событие Нажатие) и может служить гиперссылкой.В конфигурации может существовать библиотека картинок, которая располагается в ветви «Общие картинки» в дереве конфигурации. Методику работы с общими картинками можно найти в документации. Здесь отметим, что можно выбирать картинку из файла (поддерживаются все основные графические форматы: bmp, jpg, gif, tif, wmf, ico). Картинки некоторых форматов можно редактировать в специальном Редакторе картинок.

Код:
Процедура КонтрагентПриИзменении(Элемент)Процедура ПриОткрытии()
Процедура СписокПриВыводеСтроки(Элемент,

Кнопка = ЭлементыФормы.КнопкаОК;
Кнопка.ЦветТекстаКнопки = Новый Цвет(100,250,100);//зеленый
Кнопка.ЦветФонаКнопки = Новый Цвет(50,50,50);//серый
Кнопка.Рамка = Новый Рамка (ТипРамкиЭлементаУправления.Двойная,1);
Кнопка.Шрифт = Новый Шрифт (,,Истина,Истина);//жирный и наклонный
//установим также сочетание клавиш Alt-P
Кнопка .СочетаниеКлавиш = Новый СочетаниеКлавиш(Клавиша.Р,Истина);
//назначим процедуру-обработчик события Нажатие
//в модуле должна быть определена
//процедура Сформировать с параметром Элемент
Кнопка.УстановитьДействие("Нажатие",Новый Действие("Сформировать"));
Контекстное меню
в редакторе форм позволяет выполнить некоторые действия над текущим элементом управления, например, добавить страницу на панель.
КонтекстноеМеню
Значением свойства является элемент управления типа КоманднаяПанель или одна из его кнопок-подменю.Метод ОповеститьОВыборе
посылает оповещение владельцу формы о выполнении выбора и передает ему выбранное значение. Данное действие аналогично интерактивному выбору пользователя.
НачалоВыбора
Событие возникает при нажатии на кнопку выбора у поля ввода или нажатии клавиши F4.
НачалоВыбораИзСписка
Событие возникает при нажатии на кнопку выбора из списка.
Например:
ПолеОклад= ЭлементыФормы.ПолеОклад;ПолеОклад.Видимость = Истина;
ПолеОклад.МаксимальноеЗначение = 10000;
ПолеОклад.МинимальноеЗначение = 500;
ПолеОклад.ОтметкаНезаполненного = Истина;
ПолеОклад.КнопкаОчистки = Истина;

ПроцедураОткрытьФормуПодчиненногоСправочника()

ОбработкаВыбора
Это событие возникает после осуществления выбора, но до помещения выбранного значения в элемент управления.
Очистка
Это событие возникает при нажатии кнопки очистки или по комбинации клавиш Shift+F4
ОкончаниеВводаТекста
Событие возникает после окончания ввода текста при пере ходе к другому элементу управления.
Открытие
Событие возникает при нажатии на кнопку открытия объекта или комбинации клавиш Ctrl-Shift-F4.
Палитра свойств
дает возможность редактировать внешний вид и поведение выделенных элементов управления. Кроме того, у формы в целом также существуют собственные свойства. Обратите внимание, что свой набор свойств может быть даже у частей элемента управления. Например, табличное поле, колонка табличного поля и ячейка ? все имеют различный набор свойств.
Панель
Позволяет обратиться к главной панели формы, добавить или удалить страницы и т.д. Элемент управления Панель был подробно описан выше.
Панель «Форматирование»
позволяет редактировать внешний вид элементов управления. Это значительный прогресс по сравнению с версией 7.7, где все свойства настраивались в специальном окне с несколькими закладками. Те же самые свойства можно редактировать напрямую через палитру свойств.Панель «Форматирование» выглядит следующим образом:

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

Панель «Редактор форм»
позволяет установить порядок обхода элементов управления (по клавише TAB), запустить форму для проверки (Ctrl-R), вызвать конструктор для вставки элемента управления или разместить в форме элементы управления, связанные с реквизитами объекта конфигурации. Ручная настройка порядка обхода доступна, если отключен автоматический порядок обхода. Рекомендуется задавать естественный порядок обхода элементов управления: слева направо сверху вниз. Кнопки панели редактора форм показаны ниже:

Панель «Выравнивание»
становится доступна, когда в форме выделено несколько элементов управления. С помощью данных кнопок можно оперировать группой элементов, выравнивать их по краю или по центру, задавать одну ширину или высоту и даже выравнивать автоматически. Команды панели выравнивания приведены на следующем рисунке:

ПередНачаломИзменения
Возникает перед началом интерактивного изменения строки табличного поля.
ПередОткрытием
Событие возникает перед открытием формы, до показа ее на экране. В обработчике события можно отказаться как от открытия формы, так и от стандартной обработки при открытии объекта.
ПередУдалением
Возникает перед удалением строки или группы строк табличного поля. В процедуре-обработчике можно отказаться от удаления строки.
Поле HTML-документа
Данный элемент управления предназначен для отображения HTML-страниц. Это могут быть как локальные страницы, так и страницы в Интернете. У этого элемента управления есть метод Перейти, который позволяет указать адрес страницы (URL) или HTML-макет, хранящийся в конфигурации.ЭлементыФормы.ПолеНТМLДокумента.Перейти("http://www.kuban.ru/cgi-bin/forum/forum9.cgi");
После того, как HTML-документ будет полностью загружен и отображен, возникнет событие ДокументСформирован. Оно может быть обработано в программном модуле для выполнения каких-либо действий. Система 1С:Предприятие 8.0 предоставляет
доступ к HTML-документу как к СОМ-объекту, для чего предназначено свойство Документ.

Поле календаря
Элемент управления ПолеКалендаря позволяет в наглядном ре-жиме выбирать дату. Красным квадратом выделяется текущая дата. Если поле календаря расширить, то оно автоматически отразит большее количество месяцев.
Поле текстового документа
Поле текстового документа позволяет отобразить и редактировать в форме произвольный текст. Для этого элемента управления можно задать свойство «Расширение» из следующих возможных вариантов: HTML, встроенный язык и язык запросов. Тогда при отображении текста будут применены характерная цветовая палитра и другие встроенные возможности для данного содержимого. Например, для языка запросов будут выделяться ключевые слова ВЫБРАТЬ, ИЗ, ГДЕ и т.д., а из контекстного меню можно будет вызвать Конструктор запросов.
Полоса регулирования
Полоса регулирования позволяет в наглядном виде устанавливать числовое значение из ограниченного диапазона. Она содержит линейку и ползунок, который можно перемещать мышью. В свойствах можно задать минимальное и максимальное значение, интервал делений, а также малый и большой шаг.
ПоложениеПрикрепленногоОкна
Позволяет прикрепить окно к любому краю главного окна 1С: Предприятия: верхнему, нижнему, левому или правому.
ПриАктивизацииСтроки
Возникает при смене текущей строки табличного поля, т.е. при установке на нее курсора, если раньше текущей была другая строка.
ПриИзменении
Событие возникает при интерактивном изменении данных пользователем, например, после выбора элемента из справочника или после ввода числа и при переходе к другому элементу управления.
ПриИзмененииФлажка
Возникает при изменении пометки строки поля списка.ПриОткрытии
Событие возникает при открытии формы, до показа окна пользователю. В обработчике этого события отказаться от открытия формы уже нельзя. Между событиями ПередОткрытием и ПриОткрытии выполняются различные стандартные системные действия, которые могут зависеть от основного реквизита формы. Наличие этих двух обработчиков позволяет выполнить какие-то действия до системных и после.
ПриПовторномОткрытии
Событие возникает при открытии уже открытой формы. При активизации открытой формы данное событие не возникает.ПриВыводеСтроки
Возникает при выводе строки в табличное поле. В процедуре-обработчике события допускается изменение оформления как строки в целом, так и каждой ячейки в отдельности.
Пропорционально
при изменении размеров области размеры элемента изменяются так, что соотношение расстояний от правой границы элемента до левой и правой границы области остается постоянным;
Пунктирная стрелка
это привязка к границе с сохранением пропорций. В этом случае граница элемента стремится к привязке пропорционально расстоянию до нее.
Рамка


Растягивать
при горизонтальном изменении размеров области ширина элемента изменяется так, что расстояние до границ области остается постоянным;
Разделитель
Разделитель позволяет изменять размеры привязанных к нему элементов управления, например, табличных полей, списков и т.д. Разделитель может быть невидимым. Подробнее про разделители рассказывается в документации.
Регулирование
Данное событие возникает при нажатии на одну из кнопок регулирования (увеличения или уменьшения значения).
Режим редактирования привязок границ
элементов управления позволяет настроить поведение формы при изменении размеров для максимального использования пространства формы. Прямо в форме стрелками обозначаются текущие привязки, а в специальном окне можно настроить привязки вручную.
С помощью мыши
можно размещать элементы управления в форме, передвигать их и изменять их размер.Ширина, Высота
Эти свойства определяют ширину и высоту формы в пунктах (логических единицах).
Синие стрелки
идут от элементов управления.
Событие ОбработкаВыбора
у формы возникает при выборе объекта в одной из подчиненных форм или при вызове в одной из подчиненных форм метода ОповеститьОВыборе.Соединяемое Окно
Разрешает или запрещает соединение данного окна с другими свободными окнами.
СостояниеОкна
Определяет текущее состояние окна: обычное, прикрепленное свободное или прячущееся. Различные состояния окна могут быть разрешены или запрещены.
Сплошная стрелка
это жесткая привязка к границе. При изменении размеров формы расстояние до границы всегда сохраняется.
Стиль
Определяет стиль отображения формы.
Свойство МножественныйВыбор
разрешает или запрещает выбор нескольких строк из табличного поля. Несколько строк можно выделить мышью, удерживая клавишу Ctrl.
Свойство НачальноеЗначениеВыбора
содержит текущее выбранное значение элемента формы, который инициировал открытие формы для выбора. Если открытие формы выбора осуществляется из модуля, то начальное значение выбора необходимо устанавливать средствами языка до открытия формы выбора. При этом система производит попытку позиционирования списка, связанного с основным реквизитом формы (если он существует), на этом значении.
Свойство РежимВыбора
определяет поведение формы при выборе элемента из главного списка формы, т.е. списка, связанного с ее основным реквизитом. Если оно установлено в значение Истина, то форма работает в режиме выбора, иначе ? в обычном режиме.
Свойство ЗакрыватьПриВыборе
содержит признак того, что форму необходимо закрыть после осуществления выбора значения. Если это свойство установить в значение Ложь, то можно использовать форму для выбора нескольких значений.
ТипЗначения
Это свойство описывает допустимые типы значений для элемента управления.
можно программно управлять страницами
table width="100%" cellpadding="0" cellspacing="0">
table width="100%" cellpadding="0" cellspacing="0">
table width="100%" cellpadding="0" cellspacing="0">
table width="100%" cellpadding="0" cellspacing="0">
Выбор
Возникает при двойном щелчке мыши или нажатии клавиши Enter на ячейке табличного поля.
ВыборЗначения
Вызывается при выборе значения из списка в режиме выбора. Выбор значения также может быть инициирован кнопкой на панели инструментов или через контекстное меню.
Заголовок
Содержит текст заголовка формы. Обратите внимание, что это свойство, а не метод, как было в версии 7.7.
Разработка в 1С 8.0
Доход

Код:
Маc= Новый Массив; //одномерный массив без элементовМас2 = Новый Массив(10); //одномерный массив из 10 элементов
Мас3 = Новый Массив(4,5); //массив с двумя измерениями

Маc = Новый Массив; //одномерный массив без элементов
Маc.Добавить("Иванов"); //элемент будет иметь индекс 0
Маc.Добавить("Петров"); //индекс 1
Маc.Добавить("Сидоров"); //индекс 2
//после вставки нового элемента Иванов и Петров будут сдвинуты ниже
Мас2.Вставить(0,"Сидоров");
//удаляем Сидорова (Иванов и Петров сдвигаются обратно)
Мас2.Удалить(0);
Мас2 = Новый Массив(4,5); //массив с двумя измерениями
Мас2[0][0] = "Иванов";
Мас2[0][1] = "Петров";
//после вставки нового элемента Иванов и Петров будут сдвинуты ниже
Мас2[0].Вставить(0,"Сидоров");
//следующий элемент будет относиться ко 2-му измерению
//и будет являться 6-м (индекс = 5)
//при создании массива во 2-м измерении
//было создано 5 элементов, имеющих значение Неопределено
Мас2[1].Добавить("Петров");

//1-йвариант
Для Каждого эл Из Мас Цикл
//2-й вариант
Для н = 0 По Мас.ВГраница() Цикл

Отбор= Новый Структура("Цена", 100);
Выборка = Справочники.Номенклатура . Выбрать (,Отбор);

Параметры = Новый Структура("ДатаНач,ДатаКон");
Параметры.ДатаНач = ВыбДата;
Параметры.ДатаКон = ДобавитьМесяц(ВыбДата,1);
Если ВыбТипОтчета <> 0 Тогда
глСформироватьОбороты(Параметры);

ДляКаждого парам Из Параметры Цикл

НачДата = парам.ДатаНач;
КонДата = парам.ДатаКон;

ТоварАналог = соотвАналоги[Товар].Значение;
сзСотр= Новый СписокЗначений;

сзСотр. Очистить(); //удалим все элементы
//У следующего элемента индекс 0, представление "Иванов Иван"
сзСотр.Добавить("Иванов","Иванов Иван");
//У следующего элемента будет индекс 1, представление "Петров Петр"
//и установлена пометка
сзСотр.Добавить("Петров","Петров Петр", Истина);
сзСотр.Удалить(1); //удалить 2-й элемент, т.е. Петрова
сзСотр.Вставить(0,"Сидоров"); //Иванов сдвигается ниже
сзСотр.Сдвинуть(1,-1); //сдвинем Иванова обратно к началу

//1-й вариант
Для Каждого эл Из сзСотр Цикл
//2-й вариант
Для н = 0 По сзСотр.Количество()-1 Цикл

НайденныйЭлементСписка= сзСотр.НайтиПоЗначению("Иванов");
Если НайденныйЭлементСписка <> Неопределено Тогда

сзСотр = Новый СписокЗначений;
сзСотр.Добавить("Иванов",,Истина);//пометка установлена
сзСотр.Добавить("Петров");//пометка не установлена
сзСотр.Добавить("Сидоров");//пометка не установлена
ВыборПроизведен = сзСотр.ОтметитьЭлементы("Укажите сотрудников");
Если ВыборПроизведен Тогда

сзСотр.СортироватьПоЗначению(НаправлениеСортировки.Возр);
сзСотр.СортироватьПоПредставлению(НаправлениеСортировки.Убыв);

мас = Новый Массив;
мас.Добавить("Иванов");
мас.Добавить("Якушин");
мас.Добавить("Сидоров"};
сзСотр.ЗагрузитьЗначения(мас);
сзСотр.СортироватьПоЗначению();
мас2 = сзСотр.ВыгрузитьЗначения();
тзТовары= Новый ТаблицаЗначений;
тзТовары.Колонки.Добавить("Ссылка");
тзТовары.Колонки.Добавить("Наименование");
тзТовары.Колонки.Добавить("Цена");
тзТовары.Колонки.Добавить("Количество");

Функция СоздатьОписаниеТипов(НазваниеТипа,Длина,Точность="")
мас = Новый Массив;
мас.Добавить(Тип(НазваниеТипа));
тзТовары = Новый ТаблицаЗначений;
ТипКолСсылка=СоздатьОписаниеТипов("СправочникСписок.Номенклатура");
тзТовары.Колонки.Добавить("Ссылка", ТипКолСсылка,"Товар",5);
ТипКолНаим=СоздатьОписаниеТипов("Строка",50);
тзТовары.Колонки.Добавить("Наименование", ТипКолНаим);
ТипКолЦена = СоздатьОписаниеТипов("Строка",15,2);
тзТовары.Колонки.Добавить("Цена", ТипКолЦена, "Цена",15);
ТипКолКолич = СоздатьОписаниеТипов("Строка",15,4);
тзТовары.Колонки.Добавить("Количество",ТипКолКолич,"Кол-во",15);

//удаляемвсе строки из таблицы (колонки остаются)
тзТовары.Очистить();
СпрВыборка = Справочники.Номенклатура.Выбрать();
Пока СпрВыборка.Следующий() Цикл
тзТовары.Колонки.Очистить();

тзТовары.Удалить(0);//удалить 1-ю строку с индексом 0
тзТовары.Удалить(1); //удалить 2-ю строку с индексом 1

Для Каждого стр Из тзТовары Цикл

Длян=0 По тзТовары.Количество()-1 Цикл

НайденнаяСтрока = тзТовары.Найти(100,"Цена");
Если НайденнаяСтрока <> Неопределено Тогда

Отбор= Новый Структура("Цена",100);
МассивСтрок = тзТовары.НайтиСтроки(Отбор);
Сообщить("Найдено " + МассивСтрок.Количество() + " товаров с такой ценой");

тзТовары.Сортировать("НаименованиеВозр");
тзТовары.Сортировать("Цена Убыв");
тзТовары.Сортировать("Цена Убыв, Наименование Возр"););

Свернуть(<Колонки группировок>, <Колонки суммирования>)

дзОтделы= Новый ДеревоЗначений;
дзОтделы.Колонки.Добавить("Отдел");
дзОтделы.Колонки.Добавить("Руководитель");
Нов = дзОтделы.Строки.Добавить(); //индекс 0
Нов.Отдел = "Бухгалтерия";
Нов = дзОтделы.Строки.Добавить(); //индекс 1
Нов.Отдел = "Руководство";
//детализируем отдел "Бухгалтерия"
Нов = дзОтделы.Строки[0] .Строки.Добавить();
Нов.Отдел = "Расчет зарплаты";
Нов = дзОтделы.Строки[0].Строки.Добавить();
Нов.Отдел = "Основные средства";
//детализируем руководство
Нов = дзОтделы.Строки[1] .Строки.Добавить();
Нов.Отдел = "Высшее руководство";
Нов = дзОтделы.Строки[1].Строки.Добавить();
Нов.Отдел = "Отдел маркетинга";

НоваяОргСтруктура = ДзОтделы.Скопировать();

//1-йвариант: обход строк 1-го уровня
Для Каждого стр Из дзОтделы Цикл
//2-й вариант (индексация строк начинается с 0)
Для н = 0 По дзОтделы.Строки.Количество()-1 Цикл

Процедура ПоказатьПодчиненные (СтрокаДерева,Уровень=0)
ПоказатьПодчиненные(дзОтделы);
Бухгалтерия
Например:
Найдено= парам.Свойство("ТипОтчета",ВыбТипОтчета);Если Найдено Тогда

сзСотр[0].Значение= "Кузнецов";

Очистить
Удаляет все значения из массива.Удалить
Удаляет значение из массива по указанному индексу.
ВГраница
Возвращает наибольший индекс в массиве, равный количе-ство элементов минус 1. Если количество элементов массива равно 0, возвращается -1 (минус единица).
Вставить
Вставляет значение в массив по указанному индексу.
Разработка в 1С 8.0
Автоупорядочивание /AUTOORDER
Ключевое слово АВТОУПОРЯДОЧИВАНИЕ позволяет включить режим автоматического формирования полей для упорядочивания результата запроса. Оно часто используется при построении отчетов.Автоупорядочивание работает по следующим правилам:
ЧАС (<дата>)
ДеньГода (<дата>)
ДеньНедели (<дата>)
Диапазон
ДЛЯ ИЗМЕНЕНИЯ
РегистрНакопления.УчетНоменклатуры.ОстаткиДополнительно
На этой закладке устанавливаются дополнительные настройки запроса, например, исключение повторяющихся записей, а также блокировка данных для изменения.
Другие полезные методы
При работе с выборкой из результата запроса будут полезны следующие методы:Единица измерения
Ключевое слово КАК необязательно и может быть опущено, но для повышения наглядности его рекомендуется указывать, особенно на первых порах.
Ниже приведен пример того же запроса без ключевого слова КАК:
ВЫБРАТЬ Наименование Товар, Цена, ЕдИзм ЕдиницаИзмерения
ИЗ Справочник.Товары
УПОРЯДОЧИТЬ ПО Товар

Год
ГОД (<дата>)
Группа
В данном примере того же эффекта можно добиться, если просто обращаться к имени поля через точку, что называется разыменованием ссылочных полей. При этом соединение таблиц производится неявно.
Следующий запрос эквивалентен предыдущему и использует разыменование полей:
ВЫБРАТЬ Номенклатура,
Возможность разыменования полей в 1С:Предприятии 8.0 допускает обращение к свойствам объектов через несколько точек, например, «Номенклатура.Поставщик.Страна». Это позволяет значительно упростить написание запросов.
Рассмотренное соединение относится к классу внутренних. В языке запросов системы 1С:Предприятие 8.0 существует возможность внешних соединений, которые могут быть левыми (LEFT OUTER), правыми (RIGHT OUTER) и полными (FULL OUTER).

Группировка
Если требуется сгруппировать результаты запроса, т.е. свернуть по группировочным полям, выберите поля, по которым будет выполнена группировка.
Возвращает в виде строки имя группировки текущей записи. Если группировки нет, возвращается пустая строка.
Иерархический обход
Рассмотрим другой способ обхода результата запроса ? иерархический. При данном варианте обходятся только записи, находящиеся на одном уровне. Для получения иерархической выборки из результата необходимо вызвать метод Выбрать объекта РезультатЗапроса с параметром ОбходРезультатаЗапроса.ПоГруппировкамСИерархией:
Используется язык программирования:
Выборка= Справочники.Сотрудники.Выбрать();Пока Выборка.Следующий() Цикл

Используется механизм запросов:
Запрос = Новый Запрос("Пока Выборка.Следующий() Цикл
table width="100%" cellpadding="0" cellspacing="0">
table width="100%" cellpadding="0" cellspacing="0">
table width="100%" cellpadding="0" cellspacing="0">
Итоги по группировкам
При расчете итогов по группировкам вычисляются значения агрегатных функций по выборкам с одинаковыми значениями полей, по которым производится группировка. Например, в следующей таблице значения группировок выделены жирным шрифтом:
Итоги по иерархии
Если группировочное поле является ссылкой на справочник, то для расчета итогов по группам справочника (или родительским элементам, если справочник состоит из одних элементов) необходимо указать ключевое слово ИЕРАРХИЯ. В этом случае в результат будут добавлены записи с итогами для уровней иерархии справочника.Например, выберем записи справочника Номенклатура, рассчитаем объем продаж по каждой позиции и по группам справочника:

На этой закладке определяется, по
На этой закладке определяется, по каким полям подсчитывать промежуточные итоговые данные, а также подсчитывать или нет общие итоги.
Клавиатуры
Ключевое слово МЕЖДУ / BETWEEN
В языке запросов есть вспомогательное ключевое слово МЕЖДУ для задания интервалов. Например, если параметр МинЦена равен 1000, а МаксЦена ? 1500, тогда следующий запрос выберет товары с ценой из указанного интервала:ВЫБРАТЬ Наименование,
ЗакупочнаяЦена КАК Цена
ИЗ Справочник.Номенклатура
ГДЕ ЗакупочнаяЦена МЕЖДУ &МинЦена И &МаксЦена
Ключевое слово ПЕРВЫЕ / ТОР
Данное ключевое слово позволяет ограничить выборку несколькими первыми записями. Часто это ключевое слово применяется в комбинации с сортировкой (см. предложение УПОРЯДОЧИТЬ ПО).Допустим, требуется выбрать 3 самых дорогих товара. Это реализуется следующим запросом:
ВЫБРАТЬ ПЕРВЫЕ 3 Наименование, Цена
ИЗ Справочник.Номенклатура
УПОРЯДОЧИТЬ ПО Цена УБЫВ
Результат запроса будет такой:

Ключевое слово РАЗЛИЧНЫЕ/DISTINCT
Ключевое слово РАЗЛИЧНЫЕ позволяет оставить в результате запроса только отличающиеся строки. Например, если мы выбираем контрагентов из документа РасходнаяНакладная, то вполне вероятно, что один и тот же контрагент, может встретиться в нескольких накладных, поэтому без ключевого слова РАЗЛИЧНЫЕ он будет присутствовать в результате запроса несколько раз. Например, в результате приведенного ниже запроса несколько раз встречается контрагент ООО «Новый мир»:ВЫБРАТЬ Контрагент ИЗ Документ.РасходнаяНакладная

Код:
//создание объекта ЗапросЗапрос = Новый Запрос("
|ВЫБРАТЬ Код, Наименование
|ИЗ Справочник.Номенклатура");
//выполнение запроса и получение результата
РезультатЗапроса = Запрос .Выполнить();
//получение выборки из результата запроса
Выборка = РезультатЗапроса.Выбрать();
//обход записей в выборке
Пока Выборка.Следующий() Цикл
ВЫБРАТЬНаименование, ДатаПриема

ВЫБРАТЬ
ИЗ Справочник.Номенклатура

Запрос= Новый Запрос("ВЫБРАТЬ * ИЗ Документ.ПриходнаяНакладная
|ГДЕ Дата МЕЖДУ &НачДата и &КонДата");
Запрос.УстановитьПараметр("НачДата",ВыбНачалоПериода);
Запрос.УстановитьПараметр("КонДата",ВыбКонецПериода);
Результат = Запрос.Выполнить();

//1-й пример: отбор по списку товаров
Запрос = Новый Запрос("
|ВЫБРАТЬ * ИЗ Справочник.Номенклатура
|ГДЕ Ссылка В &СписокТоваров");
Запрос.УстановитьПараметр("СписокТоваров",СписокВыбранныхТоваров);
//2-й пример: отбор по группе товаров
Запрос = Новый Запрос("
| ВЫБРАТЬ * ИЗ Справочник.Номенклатура
| ГДЕ Ссылка В ИЕРАРХИИ &ГруппаТоваров");
Запрос.УстановитьПараметр("ГруппаТоваров",ВыбГруппа);
ВЫБРАТЬ
Количество


КОЛИЧЕСТВО (COUNT)
Подсчитывает количество значений, содержащихся в столбце. Если в качестве параметра данной функции передать звездочку («*»), то функция подсчитает количество строк в таблице результата запроса.
КоличествоЧеловек

Консоль запросов
Конструкция СОЕДИНЕНИЕ...ПО/JOIN...ON
Важной возможностью языка запросов системы 1С:Предприятие 8.0 является обращение сразу к нескольким таблицам. При этом их можно соединять определенным образом. Например, необходимо выбрать все проданные товары и вывести их в отчет с указанием группы, к которой они относятся. Это делает представленный ниже запрос:ВЫБРАТЬДок.Номенклатура,
Контрагент
Если же указать ключевое слово РАЗЛИЧНЫЕ, то повторяющиеся записи из результата запроса будут удалены:
ВЫБРАТЬ РАЗЛИЧНЫЕ Контрагент ИЗ Документ. РасходнаяНакладная


Куплено
Курс

КВАРТАЛ (<дата>)
ЛЕВОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ
означает, что в результат запроса надо включить комбинации записей из обеих исходных таблиц, которые соответствуют указанному условию. Но, в отличие от внутреннего соединения, в результат запроса надо включить еще и записи из первого источника (указанного слева от слова СОЕДИНЕНИЕ), для которых не найдено соответствующих условию записей из второго источника.Таким образом, в результат запроса будут включены все записи из первого источника; они будут соединены с записями из второго источника при выполнении указанного условия. Строки результата запроса, для которых не найдено соответствующих условию записей из второго источника, будут содержать значение NULL в полях, формируемых на основании записей из этого источника.
Обратите внимание, что NULL-значения не являются нулем или пустой строкой. Это специальные маркеры, обозначающие неуказанные (отсутствующие) значения или значения, не имеющие смысла.
Например, нужно показать курсы всех валют, которые хранятся в регистре сведений КурсыВалют. Возможно, что для некоторой валюты не будет найдено соответствующей записи в регистре сведений, но она также должна попасть в отчет (запросы к регистрам сведений и таблица СрезПоследних описаны в главе Регистры сведений ):
ВЫБРАТЬСпр.Наименование, Peг.Курс
ИЗ Справочник.Валюты КАК Спр
ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ
Результат запроса показан в следующей таблице:
Линейный обход
Первый и самый простой способ обхода ? линейный. При линейном обходе выборка будет выдавать записи в той последовательности, в которой они располагаются в результате запроса. В нашем примере это будут записи с номерами 1, 2, 3, 4, 5 и так далее до записи с номером 20.Для получения линейной выборки необходимо вызвать метод Выбрать объекта РезультатЗапроса без параметров, либо с параметром ОбходРезультатаЗапроса. Прямой.

Логические операторы И, ИЛИ, НЕ
В условиях можно использовать логические операторы И, ИЛИ, НЕ, с помощью которых можно строить достаточно сложные логические выражения.Например, выберем товары, произведенные в России по цене, меньшей определенного значения:
ВЫБРАТЬ Наименование,
ЗакупочнаяЦена КАК Цена,
СтранаПроисхождения КАК Страна
ИЗ Справочник.Номенклатура
ГДЕ СтранаПроисхождения = "Россия" И ЗакупочнаяЦена < 1000
Лопата
Простой запрос с итогами по группировкам выглядит следующим образом:

МЕСЯЦ (<дата>)
Мониторы

НачалоПериода ( <дата>, <ТипПериода> )
Наименование
В выражении шаблона был использован служебный символ «%», обозначающий любую последовательность символов. Кроме этого, есть и другие служебные символы для задания выражения шаблона.
Следующие символы в строке шаблона являются служебными и имеют особый смысл:
НайтиСледующий

НайтиСледующий
(СтруктураПоиска)Цикл//2-й вариант: поиск значения по заданной колонке
//выберем всех сотрудников, принятых в 2003 году
Пока Выборка.
(2003, "Год") Цикл

Например:
ВЫБРАТЬ Справочник.Товары.Наименование, Справочник.Товары.ЦенаВЫБРАТЬ Справочник.Сотрудники.*

НЕДЕЛЯ (<дата>)
Несколько итогов в запросе
В языке запросов допускается совместное использование различных итогов в одном запросе, например, общих, иерархических и итогов по группировкам.Ниже представлен запрос, который выбирает данные из расходных накладных и дополнительно подсчитывает общие итоги, итоги по контрагентам, по каждому товару и группе товаров.

Объединения / Псевдонимы
Здесь можно объединить данные из нескольких таблиц, указав условия объединения. На этой же закладке назначаются псевдонимы полей.
ОбъемПродаж

Обход по группировкам
Третий, и последний способ обхода результата ? по группировкам. Он сходен с иерархическим обходом, но с одним различием: записи с иерархическими итогами при обходе в нем рассматриваются как детальные записи, а не как узловые. Для получения выборки по группировкам из результата запроса необходимо вызвать метод Выбрать объекта РезультатЗапроса с параметром ОбходРезультатаЗапроса.ПоГруппировкам:
Общие итоги
Рассмотрим сначала общие итоги, как более простые для понимания. Следующий запрос выбирает из регистра накопления Продажи все записи за заданный период и рассчитывает общий объем продаж:
содержащая любое количество произвольных символов
Если необходимо записать один из перечисленных символов в качестве самого себя, а не в качестве служебного символа, то ему должен предшествовать спецсимвол, который определяется в этом же операторе после ключевого слова СПЕЦСИМВОЛ.
Например, следующая строка обозначает любую строку, начинающуюся со знака подчеркивания «__». Так как знак подчеркивания является служебным, то для его использования в качестве именно знака подчеркивания, необходимо его экранировать другим спецсимволом, например «\»:
ВЫБРАТЬ Наименование ИЗ Справочник.СистемныеФайлы
ГДЕ Наименование ПОДОБНО "\_%" СПЕЦСИМВОЛ "\"
ОсновнойПоставщик

Параметры в языке запросов
Обычно требуется, чтобы параметры условий пользователь мог указать самостоятельно в каком-либо диалоге. Для этого запрос конструируется с использованием параметров. Обратите внимание, что в следующем запросе параметр МинЦена предваряется знаком «&».ВЫБРАТЬНаименование, ЗакупочнаяЦена
ИЗ Справочник.Номенклатура
ГДЕ ЗакупочнаяЦена >= &МинЦена
Общая схема выполнения запроса с параметрами выглядит следующим образом:
//создание объекта Запрос с текстом запроса
Запрос = Новый Запрос("Выбрать Наименование, Цена
|ИЗ Справочник.Номенклатура
|ГДЕ Цена >= МинЦена");
//передача параметров в запрос
Запрос.УстановитьПараметр("МинЦена",1000);
//выполнение запроса с установленными параметрами
Результат = Запрос.Выполнить();
Стоит заметить, что для многих типов данных в языке запросов нет литералов, поэтому их значения можно задать только через параметры, даже если пользователь не должен их изменять.

ПОДСТРОКА (<Строка>, <Позиция>, <ЧислоСимволов>)
ПоГруппировкам
;Выборка= Результатаапроса.Выбрать(СпособВыборки);
Пока Выборка.Следующий() Цикл
//выберем дочерние записи линейным способом
ВыборкаДочерних = Выборка.Выбрать();

ПоГруппировкамСИерархией
;Процедура ВыдатьРекурсивно(Выборка)
Пока Выборка.Следующий() Цикл

Поля из вложенных таблиц
Поле в списке выборки может ссылаться на вложенную таблицу источника данных, например, на табличную часть справочника. В этом случае поле результата запроса будет иметь тип РезультатЗапроса, то есть содержать вложенный результат запроса, сформированный на основе вложенной таблицы-источника. По умолчанию во вложенный результат запроса включаются все поля вложенной таблицы-источника данных. Имеется возможность явно определить группу полей, которые должны содержаться во вложенном результате запроса.Список полей, выбираемых из вложенной таблицы, описывается по следующему образцу:
//требуются все поля из вложенной таблицы
ВЫБРАТЬ Документ.РасходнаяНакладная.Состав
ВЫБРАТЬ Документ.РасходнаяНакладная.Состав.*
//требуется только одно поле из табличной части
ВЫБРАТЬ Документ.РасходнаяНакладная.Состав.Сумма
//требуется несколько полей из табличной части
ВЫБРАТЬ Документ.РасходнаяНакладная.Состав.(Количество,Сумма)
//для полей вложенной таблицы можно указать псевдонимы
ВЫБРАТЬ Документ.РасходнаяНакладная.Состав.(Количество КАК Кол,
ПОЛНОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ
означает, что в результат запроса надо включить комбинации записей из обеих исходных таблиц, которые соответствуют указанному условию. Кроме того, в результат запроса надо включить также еще и те записи из обоих источников, для которых не найдено соответствий.Таким образом, в результат запроса будут включены все записи из обоих источников; они будут соединены друг с другом при выполнении указанного условия. Строки результата запроса, для которых не найдено соответствующих условию записей из какого-либо источника, будут содержать NULL в полях, формируемых на основании записей из этого источника.
Порядок
Если требуется, укажите условия сортировки полученной информации.
ПРАВОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ
означает, что в результат запроса надо включить комбинации записей из обеих исходных таблиц, которые соответствуют указанному условию. Кроме того, в результат запроса надо включить еще и записи из второго источника (указанного справа от слова СОЕДИНЕНИЕ), для которых не найдено соответствующих условию записей из первого источника.Таким образом, в результат запроса будут включены все записи из второго источника; они будут соединены с записями из первого источника при выполнении указанного условия. Строки результата запроса, для которых не найдено соответствующих условию записей из первого источника, будут содержать значение NULL в полях, формируемых на основании записей из этого источника.
Правое внешнее соединение полностью аналогично левому, за исключением того, что таблицы поменялись местами. Например, представленный ниже запрос эквивалентен предыдущему, но вместо левого, используется правое внешнее соединение:
ВЫБРАТЬ Спр.Наименование, Peг.Курс
ИЗ РегистрСведений.КурсыВалют.СрезПоследних() КАК Peг
ПРАВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ Справочник.Валюты КАК Спр
ПО Спр.Ссылка = Peг.Валюта
![ПРАВОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ](arrowrt.gif)
можно построить запрос без
ВЫБРАТЬНаименование, Цена ИЗ Справочник.ТоварыВЫБРАТЬ * ИЗ Справочник.Сотрудники
ВЫБРАТЬ Номер, Дата, Представление ИЗ Документ.РасходнаяНакладная
ВЫБРАТЬ * ИЗ РегистрНакопления.Продажи

Примеры значений
Продано

Продажи
Проверка пустых значений (ЕСТЬ NULL/IS NULL)
Оператор ЕСТЬ NULL позволяет проверить значение заданного выражения на NULL.
Проверка ссылочного значения (ССЫЛКА / REF)
Оператор ССЫЛКА позволяет проверить, является ли значение выражения ссылкой на таблицу, указанную справа от него. Этот оператор полезен для полей, имеющих составной тип данных. Следующий запрос выбирает товары, для которых единица измерения ссылается на справочник ЕдиницыИзмерения, а не является, например, строкой.ВЫБРАТЬ Наименование, ЕдиницаИзмерения
ИЗ Справочник.Номенклатура
ГДЕ ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения

Проверка вхождения значения в список (В / IN)
В условии можно проверять значения на вхождение в некоторый список или на принадлежность группе справочника (или элементу, если иерархический справочник состоит из одних элементов). В случае иерархического справочника можно применять конструкцию В ИЕРАРХИИ для проверки вхождения в группу независимо от уровня иерархии.Следующие запросы демонстрируют варианты использования ключевого слова В:
//выбираем товары из заданного списка
ВЫБРАТЬ Наименование, ЗакупочнаяЦена
ИЗ Справочник.Номенклатура
ГДЕ Ссылка В (&СписокВыбранныхТоваров)
//выбираем товары, принадлежащие определенной группе
//независимо от уровня, на котором они находятся
ВЫБРАТЬ Наименование, ЗакупочнаяЦена
ИЗ Справочник.Номенклатура
ГДЕ Ссылка В ИЕРАРХИИ (&ВыбраннаяГруппа)
В первом запросе параметр СписокВыбранныхТоваров является списком значений. В запросе будут выбраны только те товары, которые представлены в данном списке.
Во втором запросе параметр ВыбраннаяГруппа является группой иерархического справочника Номенклатура. В результат запроса будут включены товары, принадлежащие к заданной группе, независимо от того, на каком уровне иерархии они находятся. В качестве списка значений, можно указывать и другой запрос, тогда сначала будет выполнен вложенный запрос, а затем основной. Например, следующий составной запрос выбирает товары, по которым есть хотя бы одна расходная накладная:
ВЫБРАТЬ Спр.Наименование, Спр.ЗакупочнаяЦена
ИЗ Справочник.Номенклатура КАК Спр
ГДЕ Спр.Ссылка В (ВЫБРАТЬ РАЗЛИЧНЫЕ Номенклатура
Заметим, что в данном случае это было искусственное усложнение запроса. Того же результата можно добиться проще, используя разыменование полей:
ВЫБРАТЬ РАЗЛИЧНЫЕ Номенклатура, Номенклатура.ЗакупочнаяЦена
ИЗ Документ.РасходнаяНакладная.Состав
Это стало возможно, потому что разыменование полей заставляет систему 1С:Предприятие 8.0 производить неявное соединение таблиц. Рекомендуется всегда пользоваться разыменованием полей там, где это возможно, и не усложнять запросы лишними конструкциями.

Псевдонимы источников КАК/AS
В языке запросов есть возможность указать псевдоним для таблицы-источника с помощью ключевого слова КАК. При этом можно обращаться к источнику через псевдоним, например, в списке полей конструкции ВЫБРАТЬ или при соединении таблиц, которое будет описано ниже.Ниже приведен пример использования псевдонима таблицы-источника:
ВЫБРАТЬ Спр.Наименование,
Псевдонимы полей (КАК/AS)
Для поля может быть назначен псевдоним с помощью ключевого слова КАК. Это позволяет обращаться к полю по псевдониму при указании итогов и порядка сортировки, а также в результате запроса.В следующем запросе для полей Наименование и ЕдИзм назначаются псевдонимы:
ВЫБРАТЬНаименование КАК Товар, Цена, ЕдИзм КАК ЕдиницаИзмерения
ИЗ Справочник.Товары
УПОРЯДОЧИТЬ ПО Товар
Результат запроса будет следующий:

Сбросить
Отменяет позиционирование. После вызова метода Следующий выборка позиционируется на первую запись.СЕКУНДА (<дата>)
Следующий
СледующийПоЗначениюПоля
Сравнение строк (ПОДОБНО / LIKE)
Ключевое слово ПОДОБНО позволяет сравнить значение строкового выражения, указанного слева от него, со строкой шаблона, указанной справа. Если значение выражения удовлетворяет шаблону, то результатом оператора будет Истина, иначе ? Ложь. Например, следующий запрос выберет всех контрагентов, начинающихся на определенную букву:ВЫБРАТЬ Наименование ИЗ Справочник.Контрагенты
ГДЕ Наименование ПОДОБНО "М%"
СРЕДНЕЕ (AVG)
Вычисляет среднее арифметическое значение по столбцу.
Страна

В реальных задачах крайне рекомендуется уточнять у пользователей условия на такого рода неравенства, потому что пользователь
часто имеет в виду «меньше или равно», а не «строго меньше».
Возможно, в данном запросе товары с ценой 1000 тоже подойдут, тогда знак «<» надо заменить на «<=».
При указании нескольких логических сомножителей И, ИЛИ, НЕ целесообразно расставлять скобки, чтобы правильно определить порядок выполнения логических операций и повысить наглядность запроса.
Например, следующие два запроса могут привести к неожиданным для программиста результатам, потому что оператор И имеет больший приоритет, чем ИЛИ (а оператор НЕ имеет еще больший приоритет, чем И):
ВЫБРАТЬ Наименование,
ЗакупочнаяЦена КАК Цена,
СтранаПроисхождения КАК Страна
ИЗ Справочник.Номенклатура
ГДЕ СтранаПроисхождения = "Россия" ИЛИ СтранаПроисхождения = "США"
И ЗакупочнаяЦена < 1000
В результате мы получим следующие записи:
Этот запрос будет интерпретирован системой как «Выбрать все товары из страны Россия, независимо от цены, а также товары
из страны США, которые дешевле 1000». Т.е. условие по цене будет проверяться только для товаров из США, а товары из России будут включены в запрос при любой цене.
Вероятно, программист имел в виду совсем другое: «Выбрать товары из России и США, которые дешевле 1000», что реализовано
вторым запросом. Условие по цене будет проверяться для всех товаров, независимо от страны-производителя:
ВЫБРАТЬ Наименование,
ЗакупочнаяЦена КАК Цена,
СтранаПроисхождения КАК Страна
ИЗ Справочник.Номенклатура
ГДЕ (СтранаПроисхождения = "Россия" ИЛИ СтранаПроисхождения = "США")
И ЗакупочнаяЦена < 1000

Чтобы выбрать товары, у которых не указана страна (строковое поле), нужно применить обычное сравнение на пустую строку:
ВЫБРАТЬ Наименование, СтранаПроисхождения КАК Страна
ИЗ Справочник.Номенклатура
ГДЕ СтранаПроисхождения = ""
Если стоит задача выбрать элементы с неуказанным реквизитом, имеющим ссылочный тип, тогда следует поступать по-другому. Например, требуется выбрать все товары с незаполненным полем ОсновнойПоставщик, которое является ссылкой на справочник Контрагенты.
Предлагается следующая схема для решения этой задачи:
Запрос = Новый Запрос("
|ВЫБРАТЬ Наименование, ОсновнойПоставщик
|ИЗ Справочник.Номенклатура
|ГДЕ ОсновнойПоставщик = &ПустойКонтрагент ");
Запрос.УстановитьПараметр("ПустойКонтрагент",
В условии запроса используется параметр ПустойКонтрагент. Этот параметр до выполнения запроса получает значение пустой ссылки на справочник Контрагенты. Для этого используется метод ПустаяСсылка объекта СправочникМенеджер.
Результат приведенного выше запроса будет следующий:
Сумма
Если запрос делается к табличной части справочника или документа, то обращение к реквизитам шапки документа или обычным реквизитам справочника производится через поле Ссылка, например:
ВЫБРАТЬ Ссылка.Дата, Ссылка.Номер,

Можно рассчитать итоги по комбинации группировок, перечислив их через запятую:

СУММА (SUM)
Вычисляет сумму всех значений, содержащихся в столбце.
Связи
Эта закладка появляется, только если в запросе соединяются несколько несколько таблиц. Здесь можно настроить условия соединения.
Таблица документа
Таблица документа предназначена для выборки данных из документов. Она предоставляет следующие поля:
Ссылка
Через ссылку на документ можно будет обратиться к любому полю документа, даже если оно не включено в запрос.

ПометкаУдаления
Признак пометки на удаление документа.

Номер
Номер документа. Встроенное поле для всех документов.

Дата
Дата и время документа. Встроенное поле для всех документов.

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

Далее идут реквизиты шапки документа, как они определены в Конфигураторе, например, Контрагент, Склад и т.д.

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

МоментВремени
Виртуальное поле. Содержит момент времени документа, который включает дату и ссылку на документ. Напомним, что тип «дата» включает также и время с точностью до секунды. 
Представление
Виртуальное поле. Содержит строку представление документа, например, «Расходная накладная 0035 от 25.07.2003 12:05:01». 
Таблица справочника
Таблица справочника позволяет организовать запрос к любому справочнику и предоставляет следующие поля:
Ссылка
Ссылка на элемент справочника. Через ссылку можно будет обратиться к любому полю справочника, даже если оно не включено в запрос.

ПометкаУдаления
Признак пометки на удаление элемента справочника. Если равно значению Истина, то элемент помечен на удаление.

Родитель
Указывает на элемента-родителя (или группу), в которой содержится данный элемент. Это поле будет включено в результат запроса только для иерархических справочников.

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

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

Представление
Виртуальное поле. Содержит представление элемента справочника, например, его наименование или код. 
Код
Код элемента. Встроенное поле для всех справочников.

Наименование
Наименование элемента. Встроенное поле для всех справочников.

Далее идут реквизиты справочника, как они определены в Конфигураторе, например, Цена, ЕдИзм и т.д.

Если у справочника есть табличные части, то к ним можно обращаться по имени. При этом в результате запроса появляется вложенная таблица.
Приведем примеры простых запросов к справочнику:
ВЫБРАТЬ Код, Наименование, Цена, Родитель
ИЗ Справочник.Номенклатура
ВЫБРАТЬ *.Представление
ИЗ Справочник.Номенклатура
ВЫБРАТЬ Наименование, ЭтоГруппа, ПометкаУдаления
ИЗ Справочник.Номенклатура
ГДЕ ЭтоГруппа = ИСТИНА И ПометкаУдаления = ЛОЖЬ

Таблицы и поля
На этой закладке выбираются нужные объекты путем переноса их из списка «База данных» в списки «Таблицы» и «Поля».
Таблицы-источники данных
Каждая таблица-источник предоставляет свой набор полей. С полным их перечнем вы можете ознакомиться в документации или Синтакс-помощнике.В 1C:Предприятии 8.0 существуют следующие таблицы-источники данных для запросов:
В данной главе подробно описаны только таблицы для обращения к справочникам и документам.

ТипЗаписи
Этот метод возвращает тип текущей записи запроса, который является одним из значений системного перечисления ТипЗаписиЗапроса: ДетальнаяЗапись, ИтогПоГруппировке, ИтогПоИерархии, ОбщийИтог.Товар
Будьте внимательны, когда составляете подобный запрос не к справочнику, а к документу или регистру, в котором есть реквизит, выбираемый из иерархического справочника. В этом случае иерархического упорядочивания не происходит.
Следующий запрос это демонстрирует:
ВЫБРАТЬ Номенклатура КАК Товар
ИЗ Документ.РасходнаяНакладная.Состав
УПОРЯДОЧИТЬ ПО Номенклатура.Наименование ИЕРАРХИЯ
Для нужного эффекта необходимо организовать левое внешнее соединение со справочником, как сделано в этом запросе:
ВЫБРАТЬ Спр.Ссылка Товар, ДокСоставСсылка Документ
ИЗ Справочник.Номенклатура КАК Спр
ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная.Состав КАК ДокСостав
ПО ДокСостав.Номенклатура = Спр.Ссылка
УПОРЯДОЧИТЬ ПО Спр.Наименование ИЕРАРХИЯ
Упорядочивание по иерархии
Для иерархических справочников можно упорядочить элементы с учетом иерархии. Если мы имеем дело со справочником товаров, то вряд ли будет наглядным отчет, в котором клавиатуры чередуются с мониторами. Каждый вид товара должен быть упорядочен в пределах своей группы.ВЫБРАТЬ Ссылка КАК Товар
ИЗ Справочник.Номенклатура
УПОРЯДОЧИТЬ ПО Наименование ИЕРАРХИЯ
Упорядочивание во вложенных таблицах
В предложении УПОРЯДОЧИТЬ ПО можно определять также и условия сортировки записей из вложенных таблиц, причем их можно комбинировать с условиями упорядочивания по таблице верхнего уровня.Например, необходимо вывести спецификацию товарных накладных, показать сам документ, номенклатуру и количество. Документы требуется упорядочить по номеру, а данные из табличной части Состав ? по наименованию товара.
Это делается с помощью следующего запроса:
ВЫБРАТЬНаклСостав.Ссылка.Номер,
Номенклатура, Количество
ИЗ Документ.РасходнаяНакладная.Состав КАК НаклСостав
УПОРЯДОЧИТЬ ПО НаклСостав.Ссылка.Номер,
НаклСостав.Номенклатура.Наименование
Уровень
Возвращает уровень текущей записи в иерархии и группировках. Уровень считается от начальной выборки из результата запроса.Условия
На этой закладке можно указать условия, по которым будет выполняться отбор исходных данных. По каждому полю можно выбрать вид условия и указать параметр.
Вложенные запросы в списке источников
В системе 1С:Предприятие 8.0 можно указать в качестве источника другой запрос, т.е. запрос может выбирать данные из вложенного запроса.Для вложенного запроса, как для обычной таблицы-источника, можно указать псевдоним, что сделано в следующем примере:
ВЫБРАТЬ Товары.Номенклатура КАК Товар,
Товары.Номенклатура.ЗакупочнаяЦена КАК Цена
ИЗ (
ВЫБРАТЬ Номенклатура ИЗ Документ.РасходнаяВакладная.Состав
ОБЪЕДИНИТЬ
ВЫБРАТЬ Номенклатура ИЗ Документ.ПриходнаяНакладная.Состав
) КАК Товары
СГРУППИРОВАТЬ ПО Товары.Номенклатура
Выходная форма
Эта закладка появляется, если вызван конструктор выходных форм в дереве метаданных или в форме редактирования объекта метаданных. Конструктор выходных форм генерирует не только запрос, но и процедуру его обработки, а также макет.Все ключевые слова языка запросов
Если проверяемое значение равно NULL, то результатом оператора будет Истина, иначе ? Ложь. Применение логического оператора НЕ изменяет действие оператора на обратное. Любая операция обычного сравнения (=, >, <= и т.д.) значения NULL с чем-либо еще дает результат, аналогичный Ложь.
Следующий запрос выбирает из справочника Номенклатура все товары, для которых строковое поле СтранаПроисхождения имеет NULL-значение:
ВЫБРАТЬНаименование, СтранаПроисхождения КАК Страна
ИЗ Справочник.Номенклатура
ГДЕ СтранаПроисхождения ЕСТЬ NULL
Запросы к табличным частям
В качестве таблиц источников можно указывать табличные части объектов, например, справочников и документов. Это не то же самое, что получать табличную часть как поле запроса, содержащее вложенную таблицу, о чем было рассказано выше. Например, в следующем запросе производится обращение к табличной части Состав документа РасходнаяНакладная:ВЫБРАТЬ Товар, Цена, Количество, Сумма
И3 Документ.РасходнаяНакладная.Состав
[ИТОГИ [<агрегатные функции>] ПО <Список полей> [,ОБЩИЕ]]
Разработка в 1С 8.0
Й способ формирования диаграммы
? на основе источника данных.
Й способ формирования диаграммы
? с помощью построителя отчетаДля кнопки Выполнить создайте

Формат
Именование областей
Редактировать имена областей можно через окно свойств или с помощью панели «Имена», предварительно выделив нужный диапазон ячеек.Панель «Имена» имеет следующие кнопки:

Любая область уже имеет системное имя, например:
Разработчик может задать собственное имя для области, например, «Шапка», и использовать его при формировании табличного документа.
Для вывода пересечения горизонтальной и вертикальной секции можно использовать конструкцию с вертикальной чертой, например, «Обл = Макет.ПолучитьОбласть("Строка | Колонка")». Второй вариант ? задать имя для пересечения и работать с этой областью, как с любой другой.

ЭлементУ правления
Код:
Запрос = Новый Запрос("| ВЫБРАТЬ
| ПродажиОбороты.Контрагент КАК Контрагент,
| ПродажиОбороты.Номенклатура КАК Номенклатура,
| ПродажиОбороты.КоличествоОборот КАК КоличествоОборот,
| ПродажиОбороты.СуммаОборот КАК СуммаОборот
| ИЗ
| РегистрНакопления.Продажи.Обороты(&ПериодС,&ПериодПо,
| Месяц,,(Контрагент, Номенклатура)) КАК ПродажиОбороты
|
| ИТОГИ СУММА(КоличествоОборот) , СУММА(СуммаОборот) ПО
| Контрагент ИЕРАРХИЯ,
| Номенклатура ИЕРАРХИЯ,
| ПродажиОбороты.Период,
| ПродажиОбороты.Номенклатура.СтранаПроисхождения КАК Страна
| АВТОУПОРЯДОЧИВАНИЕ") ;
Запрос.УстановитьПараметр("ПериодС", ПериодC);
Запрос.УстановитьПараметр("ПериодПо", КонецДня(ПериодПо));
Результат = Запрос.Выполнить();
ПолеТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
СводнаяТаблица = ПолеТабДок.ВстроенныеТаблицы.СводнаяТаблица1;
СводнаяТаблица.ИсточникДанных = Результат;
СводнаяТаблица.ОтображатьПоля = Истина;
Если СводнаяТаблица.Колонки.Количество() = 0 И
Диаграмма= ЭлементыФормы.Диаграмма;
Диаграмма.Очистить ();
Диаграмма.Обновление = Ложь;
Диаграмма.Серии.Добавить("Серия 1");
Диаграмма.Серии.Добавить("Серия 2");
Диаграмма.Точки.Добавить("Точка 1");
Диаграмма.Точки.Добавить("Точка 2");
Диаграмма.Точки.Добавить("Точка 3");
Диаграмма.УстановитьЗначение(0,0,5);
Диаграмма.УстановитьЗначение(1,0,2);
Диаграмма.УстановитьЗначение(2,0,8);
Диаграмма.УстановитьЗначение(0,1,10);
Диаграмма.УстановитьЗначение(1,1,15);
Диаграмма.УстановитьЗначение(2,1,14);
Диаграмма.Обновление = Истина;
Диаграмма = ЭлементыФормы.Диаграмма;
Диаграмма.Очистить();
Диаграмма.Обновление = Ложь;
Диаграмма.СерииВСтроках = Ложь;
Диаграмма.ИсточникДанных = ТаблицаДанных;
Диаграмма.Обновление = Истина;
ТабДок = Новый ТабличныйДокумент;
//Получение макета
Макет = Документы.РасходнаяНакладная.ПолучитьМакет("Печать");
//получим область как новый табличный документ (!)
Область = Макет.ПолучитьОбласть("Заголовок");
//выведем область в табличный документ
ТабДок.Вывести(Область);
//Шапка
ТабДок.Вывести(Макет.ПолучитьОбласть("Шапка"));
//Состав
Для Каждого СтрСостава Из Состав Цикл
//Подвал
Область = Макет.ПолучитьОбласть("Подвал");
ТабДок.Вывести(Область);
ТабДок.Показать(); //покажем на экране
А следующий пример формирует более сложный отчет. В нем выводятся горизонтальные и вертикальные области, устанавливаются различные свойства области:

ТабДок= ЭлементыФормы.ПолеТабДок;
ТабДок.Очистить();
Макет = ПолучитьМакет("Основной");
//получим область как объект ТабличныйДокумент
ОбластьТабДок = Макет.ПолучитьОбласть("ЛеваяЧастьШапки");
ТабДок.
ОбластьЯчеек = Макет.Область("НазваниеМесяца") ;
ОбластьЯчеек = Макет.Области[ "НазваниеМесяца" ];
ОбластьЯчеек = Макет.Области.НазваниеМесяца;

//получим область как новый табличный документ (!)
Область = Макет.ПолучитьОбласть("Заголовок");
//укажем параметры области
Область.Параметры.НомерДокумента = Номер;
Область.Параметры.От = Дата;
Область.Параметры.Кому = Контрагент;
ТабДок.Вывести(Область) ;
ТабДок.Вывести(Макет.ПолучитьОбласть("Шапка"));
Область = Макет.ПолучитьОбласть("Строка");
Для Каждого СтрСостава Из Состав Цикл
Область.Параметры.Заполнить(СтрСостава);
ТабДок.Вывести(Область);
КонецЦикла;
Область = Макет.ПолучитьОбласть{"Подвал");
Область.Параметры.ИтогоКоличество = Состав.Итог("Количество");
Область.Параметры.ИтогоСумма = Состав.Итог("Сумма");
РегОтв = РегистрыСведений.ОтветственныеСотрудники;
Область.Параметры.Директор = РегОтв.ПолучитьПоследнее(Дата).Директор;
ТабДок.Вывести(Область);
ТабДок = Новый ТабличныйДокумент;
ТекстЗапроса = "ВЫБРАТЬ
| СпрНоменклатура.Наименование,
| СпрНоменклатура.ЭтоГруппа,
| СпрНоменклатура.Ссылка КАК Ссылка,
| РегОстатки.КоличествоОстаток КАК Остаток
|ИЗ
| Справочник.Номенклатура КАК СпрНоменклатура
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрНакопления.УчетНоменклатуры.Остатки КАК РегОстатки
| ПО СпрНоменклатура.Ссылка = РегОстатки.Номенклатура
|ГДЕ ЭтоГруппа = Ложь
|ИТОГИ СУММА(Остаток) ПО Ссылка ТОЛЬКО ИЕРАРХИЯ";
Запрос = Новый Запрос(ТекстЗапроса);
Макет = ПолучитьМакет("Остатки");
Обл = Макет.ПолучитьОбласть("Шапка");
ТабДок.Вывести(Обл);
//зафиксируем шапку для удобного просмотра
ТабДок.ФиксацияСверху = ТабДок.ВысотаТаблицы;
Обл = Макет.Область("Строка");
ОбычныйШрифт = Обл.Шрифт;
ОбычныйЦветТекста = Обл.ЦветТекста;
ОбычныйЦветФона = Обл.ЦветФона;
//один раз получим область Строка
Обл = Макет.ПолучитьОбласть("Строка");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Процедура тпРезультатОбработкаРасшифровки(Элемент, Расшифровка,
СтандартнаяОбработка)
ТабДок.НачатьАвтоГруппировкуСтрок();
Пока Выборка.Следующий();
ТабДок.ЗакончитьАвтоГруппировкуСтрок();
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий();
НачатьГруппуКолонок
НачатьГруппуСтрок
Номенклатура.*,Контрагент.*}
Область
Позволяет получить область как объект типа ОбластьЯчеекТабличногоДокумента.("НазваниеМесяца");
Общая схема работы
Основные методы формирования печатной формы следующие:Открыта
Признак того, что выводимая группа будет открыта (развернута).
ПолучитьОбласть
Позволяет получить область как объект типа ТабличныйДокумент.Обратите внимание на различие методов Область и ПолучитьОбласть:

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

Серия
? последовательность значений по одному измерению, например, курс заданной валюты за несколько дней.

Событие Выбор
При двойном щелчке (или нажатии Enter) на ячейке табличного документа или рисунке возникает событие Выбор. Это же событие возникает при одинарном щелчке на гиперссылке. Программист может перехватить это событие с помощью процедуры-обработчика.
СодержитЗначение
ТипЗначения
Точка
? отметка на оси абсцисс, по которой будут установлены значения для каждой серии. Например, конкретная дата, на которую будут отображены курсы всех валют.Уровень
Этот параметр используется для автоматической группи-ровки строк табличного документа с помощью методов Начать/ЗакончитьАвтоГруппировкуСтрок и Начать/ЗакончитьАвтоГруппировкуКолонок. Соседние строки с одинаковым уровнем будут отнесены к одной группе.
в форме которого располагается элемент

Вывести(Диаграмма, ИмяРесурса)
Вывести(ТабДок)
Вывести()
Выводит в печатную форму очередной фрагмент табличного документа, добавляя его снизу, начиная с первой колонки.
(ОбластьТабДок);
Для НомМес = 1 По 12 Цикл
ЗакончитьГруппуКолонок
ЗакончитьГруппуСтрок
обработчик события анализирует расшифровку, и,
Значение
Разработка в 1С 8.0
Активность
Цена
Дата
Дата приема
Для непериодических регистров сведений:
Структура должна содержать ключи, соответствующие именам измерений регистра (в произвольном порядке). В качестве значений структуры передаются значения измерений, по которым следует осуществлять отбор.
Для непериодического регистра сведений:
Для периодических регистров сведений:
где Период ? это дата или момент времени, на который требуется получить значения ресурсов.
Метод Получить возвращает структуру, ключи которой совпадают с именами ресурсов,

Для периодического регистра сведений:
Параметр Отбор ? это структура только с одним элементом, которая задает фильтр по полю. Ключ структуры описывает имя поля, а значение структуры ? значение отбора по этому полю. В качестве полей для отбора могут задаваться измерения, для которых в Конфигураторе задан признак индексирования или которые являются ведущими.
Параметры Начало интервала и Конец интервала позволяют задать границы интервала и могут иметь тип «дата», МоментВремени или Граница.
Приведем пример выборки записей периодического регистра сведений за определенный период по заданной валюте:

<Имя измерения>
<Имя реквизита>
<Имя ресурса>
Источник
Данный запрос просто выбирает все записи регистра сведений, не производя никакую дополнительную их обработку. Чтобы получить записи за определенный период или по конкретной валюте, необходимо добавить в запрос условие ГДЕ.
Допустим, нам нужны записи за первый квартал по валюте «EUR», тогда для решения этой задачи нам понадобится следующий запрос:

Чтобы систематизировать знания об основной таблице регистра сведений, приведем список всех полей, которые она предоставляет:
Измерения:
Код:
РегЦены = РегистрыСведений.ЦеныКонкурентов;Отбор = Новый Структура("Конкурент", ВыбКонкурент);
тзЦеныКонкурента = РегЦены.СрезПоследних(ВыбДата,Отбор);
Метод СрезПервых действует аналогично методу СрезПоследних, за исключением того, что он выбирает срез наиболее ранних записей по отношению к заданной дате или моменту времени. Для извлечения данных из регистров сведений могут также применяться запросы, описанные в конце этой главы.

Курс

Менеджер регистра сведений
Объект РегистрСведенийМенеджер предоставляет доступ к действиям с конкретным регистром. Этот объект позволяет открыть нужную выборку с помощью методов Выбрать и ВыбратьПоРегистратору, создать новый набор записей, создать менеджер записи и ключ записи, через него можно получить форму и макет регистра сведений.
Менеджер регистров сведений
Объект РегистрыСведенийМенеджер через свои свойства предоставляет доступ к объектам РегистрСведенийМенеджер. Свойство глобального контекста РегистрыСведений является объектом именно этого типа, например:РегКурсы= РегистрыСведений.КурсыВалют;
ОтвСотр = РегистрыСведений.ОтветственныеСотрудники;
Объект РегистрыСведенийМенеджер является коллекцией, и для него доступен обход элементов с помощью конструкции «Для Каждого».

Менеджер записи регистра сведений
Для операций над одной записью регистра сведений применяется объект РегистрСведенийМенеджерЗаписи. Этот объект существует только у независимого регистра сведений, т.е. не подчиненного регистратору.Например, следующая программа удаляет безвозвратно все записи из регистра сведений КурсыВалютРасчетаЗарплаты:
Модуль набора записей
У набора записей регистра есть собственный модуль, который открывается из окна редактирования свойств регистра. Можно считать, что модуль набора записей является аналогом модуля любого другого прикладного объекта, например, модуля справочника или модуля документа.В модуле набора записей регистра могут располагаться процедуры-обработчики событий ПередЗаписью и ПриЗаписи:
МоментВремени
Набор записей регистра сведений
Набор записей позволяет оперировать сразу несколькими записями регистра. Набор записей можно целиком прочитать из базы данных, добавить в него записи или изменить их, целиком записать в базу данных. Это основной способ добавления и редактирования записей регистра сведений.У документов есть свойство Движения, которое предоставляет доступ к наборам записей этого документа по каждому регистру. Как правило, при проведении документов сначала добавляются записи в набор, а затем набор записывается в базу данных. Можно создать новый набор записей из объекта РегистрСведенийМенеджер, если вызвать его метод СоздатьНаборЗаписей. Пока отбор не установлен, набор записей будет распространяться на весь регистр.

Например:
РегКурсы = РегистрыСведений.КурсыВалют;Отбор = Новый Структура("Валюта",ВыбВалюта);
СтруктураРесурсы = РегКурсы.Получить(ВыбДата, Отбор);
Сообщить(СтруктураРесурсы.Курс);
Сообщить(СтруктураРесурсы.Кратность);
Если записи с такой комбинацией измерений и периода (для периодических регистров) не найдено, то в элементах структуры будут пустые значения.
Следующие методы применимы только для периодического регистра сведений:
Метод ПолучитьПоследнее имеет следующий синтаксис:
ПолучитьПоследнее (<Конец периода>, <структура>)
Если он не находит запись в регистре по данной комбинации измерений точно на заданный период, то возвращается ближайшая более ранняя запись,

РегКурсы= РегистрыСведений.КурсыВалют;
Отбор = Новый Структура("Валюта",ВыбВалюта);
СтруктураРесурсы = РегКурсы.ПолучитьПоследнее(ВыбДата, Отбор);
Сообщить(СтруктураРесурсы.Курс);
Сообщить(СтруктураРесурсы.Кратность);
Метод ПолучитьПервое действует аналогично методу ПолучитьПоследнее, за исключением того, что он получает наиболее ранние значения ресурсов по отношению к заданной дате или моменту времени.
Метод СрезПоследних позволяет получить наиболее поздние записи регистра, соответствующие указанным измерениям, например, можно получить курсы всех валют на заданную дату. Метод возвращает таблицу значений с найденными записями. Структура таблицы значений совпадает со структурой регистра сведений:
РегКурсы = РегистрыСведений.КурсыВалют;
тзКурсыВалютНаДату = РегКурсы.СрезПоследних(ВыбДата);
Метод СрезПоследних позволяет задать отбор по измерениям регистра с помощью второго параметра, имеющего тип Структура. В переданной структуре должны содержаться те измерения, по которым должны быть отфильтрованы записи. В каждом элементе структуры задается имя и значение отбора. Например, следующая программа получает последние актуальные цены по товарам заданного конкурента:

Выборка= РегистрыСведений.КурсыВалют.Выбрать();
Пока Выборка.Следующий() Цикл
Выборку можно ограничить только нужными записями, используя параметры метода Выбрать.
Синтаксис метода Выбрать следующий:
НомерСтроки
Оптовая цена

Основная таблица регистра сведений
Продемонстрируем, как с помощью запросов можно получать информацию из регистра КурсыВалют, который имеет одно ведущее измерение Валюта, два ресурса ? Курс и Кратность и реквизит Источник, показывающий, откуда взялась информация о курсе. Этот регистр является периодическим с периодом День, значит, в регистре будет храниться история изменения курсов валют за каждый день.Самый простой случай ? получение всех записей регистра КурсыВалют:
Ниже приведен

Основная таблица
ПередЗаписью
Это событие возникает перед записью набора регистра сведений. В процедуре-обработчике можно проверить набор записей на наличие ошибок и отказаться от записи.Период
Периодичность

Создадим новый пустой набор
//создадимновый пустой набор записей, действующий на весь регистрНабор = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();
//установим отбор по дате и валюте
//если этого не сделать, то весь регистр
//будет переписан новым набором
Набор.Отбор.Валюта.Значение = ВыбВалюта;
Набор.Отбор.Период.Значение = ВыбДата;
Набор.Отбор.Валюта.Использование = Истина;
Набор.Отбор.Период.Использование = Истина;
//добавим запись в набор (не в базу данных)
НовЗапись = Набор.Добавить();
НовЗапись.Валюта = ВыбВалюта;
НовЗапись.Период = ВыбДата;
НовЗапись.Курс = НовыйКурс;
//запишем набор в базу данных
//записи по заданному отбору будут переписаны
Набор.Записать(Истина);

Набор.Прочитать();
тзЗаписи = Набор.Выгрузить();
Набор.Загрузить(тзЗаписи);
Набор.Записать();
При выгрузке структура таблицы значений полностью соответствует структуре набора. При загрузке загружаются только те колонки, имена которых в наборе и таблице значений совпадают. Можно выгружать в массив и загружать из массива только одну колонку набора записей, для чего предназначены методы ВыгрузитьКолонку и ЗагрузитьКолонку. Выгружаются и загружаются записи, имеющие тот же индекс, что и элементы массива (индексация записей набора и элементов массива начинается с 0).
МассивКурсов = Набор.ВыгрузитьКолонку("Курс");
Набор.ЗагрузитьКолонку(МассивКурсов,"Курс");
Для удаления записей из набора существует два метода: Удалить и Очистить. Первый метод удаляет запись с заданным индексом, хотя в качестве параметра можно передавать и саму запись (объект типа РегистрСведенийЗапись). Второй метод полностью очищает набор, удаляя все записи. Обратите внимание, что записи удаляются из набора, а не из регистра сведений.

Нач = Новый МоментВремени(ВыбДатаВремяНачала);
Кон = Новый Граница(ВыбДатаВремяОкончания,ВидГраницы.Включая);
Отбор = Новый Структура("Валюта", ВыбВалюта);
Выборка = РегистрыСведений.КурсыВалют.Выбрать(Нач,Кон,Отбор);
Пока Выборка.Следующий() Цикл

непериодического регистра сведений понимаются значения
РегКурсы= РегистрыСведений.КурсыВалют;Выборка = РегКурсы.Выбрать();
МенеджерЗаписи = РегКурсы.СоздатьМенеджерЗаписи();
Набор = РегКурсы.СоздатьНаборЗаписей();
ФормаСписка = РегКурсы.ПолучитьФормуСписка();
ОсновнойМакет = РегКурсы.ПолучитьМакет("Основной");
Объект РегистрСведенийМенеджер позволяет обращаться к «итогам» регистра. Под «итогами» непериодического регистра сведений понимаются значения ресурсов по заданным измерениям, а для периодических регистров сведений можно получить первое и последнее значение по указанным измерениям, а также срез первых и срез последних записей.
Для обращения к «итогам» регистра сведений применяются методы Получить, ПолучитьПервое и ПолучитьПоследнее, СрезПервых и СрезПоследних, а также запросы (см. главу Запросы). При получении среза первых и среза последних записей, как правило, не указывается одно или несколько измерений.
Метод Получить имеет два варианта синтаксиса:
ПриЗаписи
Данное событие возникает после записи набора в информационную базу, но до окончания транзакции. В обработчике события также можно отказаться от записи набора.
Регистратор
Приведем пример обращения к одному из регистров, записываемых регистраторами (документами).
Возьмем регистр СведенияОСотрудниках и рассмотрим

РегистрСведенийКлючЗаписи

РегистрСведенийМенеджер
РегистрСведенийМенеджерЗаписи
РегистрСведенийНаборЗаписей
РегистрСведенийСписок
РегистрСведенийВыборка
РегистрСведенийЗапись
РегистрыСведенийМенеджер
Реквизиты регистра сведений
При создании регистра сведений, кроме измерений и ресурсов, можно определить реквизиты регистра. Их можно представить как дополнительные колонки в таблице записей регистра. Реквизиты содержат сопроводительную информацию для каждой записи регистра.Например, в регистр сведений КурсыВалют можно добавить реквизит Источник, который будет показывать, откуда была получена информация о курсе валюты. Разработчик может использовать реквизиты для отбора нужных записей при обходе выборки или при использовании запроса.
Следующий пример выбирает все записи регистра, у которых реквизит равен определенному значению:
Выборка= РегистрыСведений.КурсыВалют.Выбрать();
Пока Выборка.Следующий() Цикл

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

Выборка из регистра сведений
Объект РегистрСведенийВыборка предназначен для динамического обхода записей регистра сведений. При этом записи считываются из базы данных порциями по мере выборки. Такая схема рационально использует память и позволяет перебрать множество записей регистра,
Разработка в 1С 8.0
Активность
| Содержит признак активности записи, т.е говорит о том, учитываются ли записи при получение итогов регистра. |
| |
Активность записей
Активность записей регистра означает, что они будут использованы при подсчете итогов. Если записи сделать неактивными, то на итоги регистра накопления они влиять не будут. Позже можно включить активность записей, тогда они сразу повлияют на итоги регистра. При переборе записей регистра неактивные записи регистра также включаются в выборку.Движения
| В этом случае будут выданы те периоды, в которых были движения. |
| |
ДвиженияИГраницыПериода
(по умолчанию)| В этом случае выбираются периоды, в которых были дви-жения, а также периоды на начало и конец заданного ин-тервала. |
Пример обращения к этой таблице приведен

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

РегМенеджер = РегистрыНакопления.СтоимостнойУчетНоменклатуры;
Отбор = Новый Структура("Номенклатура",ВыбТовар);
тзОстатки = РегМенеджер.Остатки(,Отбор);
Если тзОстатки.Количество() > 0 Тогда
| КоличествоТовара = тзОстатки[0].Количество; |
| СтоимостьТовара = тзОстатки[0].Сумма; |
Метод Обороты имеет следующий синтаксис:
Обороты(<Начало периода>,<Конец периода>,
<Отбор>,<Измерения>,<Ресурсы>)
Параметры Начало периода и Конец периода могут содержать дату, момент времени или объект типа Граница. Они указывают, за какой период нужно получить обороты. Остальные параметры аналогичны таким же параметрам метода Остатки.
Метод Обороты также возвращает таблицу значений, содержащую колонки с измерениями, указанными в параметре Измерения. Если производится обращение к регистру остатков, то названия колонок для ресурсов формируются следующим образом «<Имя ресурса>Приход» и «<Имя ресурса>Расход». При обращении к регистру оборотов названия колонок совпадают с именами ресурсов, как показано в следующем

Конец периода
| Указывается конец периода расчета итогов. |
| |
Менеджер регистра накопления
Объект РегистрНакопленияМенеджер предоставляет доступ к действиям с конкретным регистром. Этот объект позволяет открыть нужную выборку с помощью методов Выбрать и ВыбратьПоРегистратору, создать новый набор записей, получить форму и макет регистра накопления.
Менеджер регистров накопления
Объект РегистрыНакопленияМенеджер через свои свойства предоставляет доступ к объектам РегистрНакопленияМенеджер. Свойство глобального контекста РегистрыНакопления является объектом именно этого типа, например:| |
| РегОстатки = РегистрыНакопления.ОстаткиТоваров; |
| РегПродажи = РегистрыНакопления.Продажи; |

Модуль набора записей
У набора записей регистра накопления есть собственный модуль, который открывается из окна редактирования свойств регистра. Можно считать, что модуль набора записей является аналогом модуля любого другого прикладного объекта, например, модуля справочника или модуля документа.В модуле набора записей регистра накопления могут располагаться процедуры-обработчики событий ПередЗаписью и ПриЗаписи. Их назначение точно такое же, как у модуля набора записей регистра сведений, описанного в предыдущей главе.

Момент времени
| Параметр может содержать дату, момент времени или объект типа Граница. Он указывает, на какой момент времени нужно получить остатки регистра. |
| |
МоментВремени
| Содержит момент времени записи регистра НомерСтроки Содержит номер строки, определяемый как порядковый номер записи в наборе по данному регистратору. |
Следующий простой запрос выбирает несколько столбцов из оборотного регистра накопления Продажи:
| ВЫБРАТЬ Период, Регистратор, Номенклатура, Количество, Сумма |
| ИЗ РегистрНакопления.Продажи |

Набор записей регистра накопления
Набор записей позволяет оперировать сразу несколькими записями регистра. Набор записей можно целиком прочитать из базы данных, добавить в него записи или изменить их, целиком записать в базу данных. Важно понять, что это единственно возможный способ добавления и изменения записей регистра накопления.У документов есть атрибут Движения, который предоставляет доступ к наборам записей этого документа по каждому регистру, поэтому при проведении документов сначала добавляются записи в набор, а затем набор записывается в базу данных. Можно создать новый набор записей из объекта РегистрНакопленияМенеджер, если вызвать его метод СоздатьНаборЗаписей,

Начало интервала, Конец интервала
| Позволяют задать границы интервала и могут иметь тип «дата», МоментВремени или Граница. |
| |
Начало периода
| Указывается начало периода расчета итогов. |
| |
Например:
Набор= РегистрыНакопления. Продажи. СоздатьНаборЗаписей();Набор.Отбор.Регистратор.Значение = ВыбДок;
Набор.Прочитать();
Для Каждого движ Из Набор Цикл
| Сообщить(движ.Сумма); |
Записи набора можно выгружать в таблицу значений с помощью метода Выгрузить или, наоборот, загружать записи в набор из таблицы значений с помощью метода Загрузить. При выгрузке структура таблицы значений полностью соответствует структуре набора. При загрузке загружаются только те колонки, имена которых в наборе и таблице значений

Набор= РегистрыНакопления.Продажи.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Значение = ВыбДок;
Движ = Набор.Добавить();
Движ.Регистратор = ВыбДок;
Движ.Номенклатура = ВыбТовар;
Движ.Контрагент = ВыбКонтрагент;
Движ.Период = РабочаяДата;
Движ.Количество = Количество;
Движ.Сумма = Сумма;
Набор.Записать(Ложь); //добавить к набору записей по документу
![]() |
Выборка= РегистрыНакопления.Остатки.Выбрать();
Пока Выборка.Следующий() Цикл
| Сообщить(СокрЛП(Выборка.Товар) + " " + |
| СокрЛП(Выборка.Склад) + " " + |
| СокрЛП(Выборка.Количество)); |
Выборку можно ограничить только нужными записями, используя параметры метода Выбрать.
Синтаксис метода Выбрать следующий:
Выбрать(<Начало интервала>,<Конец интервала>,<Отбор>,<Порядок>)
Назначение параметров метода Выбрать таково:
Ниже
ВЫБРАТЬНоменклатура, Склад, Период,
ВЫРАЗИТЬ(КоличествоНачальныйОстаток КАК ЧИСЛО(15,3)) НачОстаток,
ВЫРАЗИТЬ(КоличествоПриход КАК ЧИСЛО(15,3)) Приход,
ВЫРАЗИТЬ(КоличествоРасход КАК ЧИСЛО(15,3)) Расход,
ВЫРАЗИТЬ(КоличествоКонечныйОстаток КАК ЧИСЛО(15,3)) КонОстаток
ИЗ РегистрНакопления.УчетНоменклатуры.ОстаткиИОбороты(
| &НачДата,&КонДата, Месяц,,Номенклатура=&ВыбТовар) |
| Сумма(НачОстаток), |
| Сумма(Приход), |
| Сумма(Расход), |
| Сумма(КонОстаток) ПО ОБЩИЕ |
Этот запрос показывает остатки и обороты для конкретной номенклатуры по всем складам с разворотом по месяцам. Дополнительно подсчитываются общие итоги, что потребовало приведения данных к числовому типу с помощью конструкции ВЫРАЗИТЬ.
НомерСтроки
| Содержит номер строки, определяемый как порядковый номер записи в наборе записей. Это поле существует, если только параметр Периодичность имеет значение Запись. |
Следующий простой запрос показывает все поля из таблицы Обороты регистра Продажи:
| |
| ВЫБРАТЬ * ИЗ РегистрНакопления.Продажи.Обороты |
Для регистра остатков УчетНоменклатуры картина будет немного другая:
| |
| ВЫБРАТЬ * ИЗ РегистрНакопления.УчетНоменклатуры.Обороты |
Напомним, что для регистра остатков колонка <ИмяРесурса>Оборот рассчитывается как разность между колонками <ИмяРесурса>Приход и <ИмяРесурса>Расход. Таблица получения оборотов для регистра накопления имеет следующие параметры вызова:
Основная таблица регистра накопления
Основная таблица регистра накопления существует для обоих типов регистров (остатков и оборотов) и предоставляет следующие поля:Отбор
| Структура должна содержать ключи, соответствующие именам измерений регистра (в произвольном порядке). В качестве значений структуры передаются значения измерений, по которым следует осуществлять отбор. |
| |
| Структура только с одним элементом, которая задает фильтр по полю. Ключ структуры описывает имя поля, а значение структуры ? значение отбора по этому полю. |
Приведем пример выборки записей регистра накопления за определенный период по заданному

ПересчитатьИтоги
| Позволяет осуществить полный пересчет итогов регистра накопления. |
| |
Период
| Содержит период (дату) записи регистра. |
| |
| Указывается дата или момент времени, на который рассчитываются остатки. Если параметр не задан, итоги рассчитываются по самую последнюю запись. |
| |
| Содержит начальную дату и время периода, к которому от-носится оборот регистра. Существует в случае, если только используется разворот по периодам, т.е. параметр Периодичность имеет какое-либо значение, например, Год, Квартал, Запись и т.д. |
| |
Периодичность
| Указывается дополнительный разворот итогов по периодичности. Задается один из следующих вариантов: Период (не разворачивать), Регистратор, День, Неделя, Декада, Месяц, Квартал, Полугодие, Год. |
| |
ПолучитьПериодРассчитанныхИтогов
| Возвращает дату, по которую рассчитаны итоги регистра накопления. |
| |
и загружаются записи, имеющие тот
МассивОстатков= Набор.ВыгрузитьКолонку("Количество");Набор.ЗагрузитьКолонку(МассивОстатков,"Количество");
Выгружаются и загружаются записи, имеющие тот же индекс, что и элементы массива (индексация записей набора и элементов массива начинается с 0).
Для удаления записей из набора существует два метода Удалить и Очистить. Первый метод удаляет запись с заданным индексом, но в качестве параметра можно передавать и саму запись (объект типа РегистрНакопленияЗапись). Второй метод полностью очищает набор, удаляя все записи. Обратите внимание, что записи удаляются из набора, а не из регистра накопления.
Для чтения записей или итогов регистра, кроме методов Выбрать, Остатки и Обороты, могут быть использованы запросы, о чем рассказано ниже в этой главе. О самом механизме запросов вы можете прочитать в главе Запросы.

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

Регистры остатки и регистры оборотов
В системе 1С:Предприятие 8.0 возможно использование регистров накопления двух типов: регистры остатков и регистры оборотов. Разница между ними понятна из их названия и заключается в характере хранимой информации: из регистров остатков можно бы-стро получить информацию о состоянии средств на момент времени, а из регистров оборотов ? данные за период.Если из регистра нужно быстро получать остаток чего-либо на текущий момент, тогда нужно завести регистр остатков. Если из регистра нужно быстро получать обороты чеголибо за период, тогда нужно создать оборотный регистр.

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

Совпадают:
Набор.Прочитать();тзЗаписи = Набор.Выгрузить();
Набор.Загрузить(тзЗаписи);
Набор.Записать();
Можно выгружать в массив и загружать из массива только одну колонку набора записей, для чего предназначены методы ВыгрузитьКолонку и ЗагрузитьКолонку

Таблица получения оборотов
Таблица получения оборотов существует у регистра остатков и регистра оборотов. Эта таблица включает следующие поля:Таблица получения остатков и оборотов
В языке запросов системы 1С:Предприятие 8.0 существует возможность получения комбинированной информации по остаткам и оборотам. Для этого предназначена таблица-источник ОстаткиИОбороты, которая существует у регистра остатков и регистра оборотов.Таблица ОстаткиИОбороты предоставляет следующие поля:
| |
| · | <Имя измерения>, |
| · | <Имя ресурса>НачальныйОстаток, |
| · | <Имя ресурса>КонечныйОстаток, |
| · | <Имя ресурса>Оборот, |
| · | <Имя ресурса>Приход, |
| · | <Имя ресурса>Расход, |
| · | Период (поле существует только, если в параметрах указана периодичность, не равная Период), |
| · | Регистратор (если периодичность Регистратор или Запись), |
| · | НомерСтроки (если периодичность Запись) |
| |
| При вызове данной таблицы есть возможность указать следующие параметры: |
| |
| · | Начало периода, |
| · | Конец периода, |
| · | Периодичность, |
| · | Метод дополнения, |
| · | Условие. |
Таблица получения остатков
Таблица получения остатков существует только у регистра остатков и предоставляет в распоряжение разработчику следующие поля:Товару:
Нач = Новый МоментВремени(ВыбДатаВремяНачала);Кон = Новый Граница(ВыбДатаВремяОкончания,ВидГрачицы.Включая);
Отбор = Новый Структура("Товар",ВыбТовар);
Выборка = РегистрыНакопления.ОстаткиТоваров.Выбрать(Нач,Кон,Отбор);
Пока Выборка.Следующий() Цикл
| Сообщить(СокрЛП(Выборка.Товар) + " " + |
| СокрЛП(Выборка.Склад) + " " + |
| СокрЛП(Выборка.Количество)); |
Условие
| Указывается условие на языке запросов, которое будет использовано для ограничения состава записей, по которым будут выбираться итоги. Если параметр не задан, анализируются все активные записи регистра. |
Например, следующий запрос получает остатки конкретного товара на заданную дату на каждом складе:
| |
| ВЫБРАТЬ * |
| ИЗ РегистрНакопления.УчетНоменклатуры.Остатки(&ВыбДата, |
| Номенклатура=&ВыбТовар) |

| Указывается условие на языке запросов. Условие может оперировать полями регистра накопления. Оно будет использовано для ограничения состава записей, по которым будут выбираться обороты. То есть условие будет применяться к исходным записям, а не к уже отобранным. Если параметр не задан, анализируются все активные записи регистра. |
Например, следующий запрос показывает месячные обороты конкретного товара по каждому складу за заданный период:
| ВЫБРАТЬ * ИЗ РегистрНакопления.УчетНоменклатуры.Обороты( |
| &НачДата, |
| &КонДата, |
| Месяц, |
| Номенклатура=&ВыбТовар) |

УстановитьПериодРассчитанныхИтогов
| Устанавливает месяц, на который рассчитывается итоги. Обратите внимание, что доступ к итогам регистра возможен всегда. Граница рассчитанных итогов влияет лишь на производительность получения итогов по данному регистру. |
Актуальность итогов регистров можно также установить интерактивно, используя пункт меню «Операции
Управление итогами». 
ВидДвижения
| Значение системного перечисления ВидДвиженияНакопления, которое определяет вид движения записи ? приход или расход |
| |
Под итогами понимается сводная информация,
| Под итогами понимается сводная информация, выдаваемая регистром накопления. Это могут быть ответы на следующие вопросы: |
| |
| · | остаток конкретного товара на конкретном складе, |
| · | остаток конкретного товара на всех складах, |
| · | стоимость всех товаров на конкретном складе. |
| |
| Итоги регистра могут быть получены как на текущий момент времени, так и на любую другую дату или момент времени, а если это регистр оборотов, то за любой период. Как мы увидим ниже, это определяется параметрами методов Остатки и Обороты или параметрами виртуальных таблиц при использовании запросов. |
| |
| Список записей регистра накопления может выглядеть следующим образом. |
| |
| При создании регистра накопления, кроме измерений и ресурсов, можно определить реквизиты регистра. Их можно представить как дополнительные колонки в таблице записей регистра. Реквизиты содержат сопроводительную информацию для каждой записи. Например, в регистр накопления Остатки можно добавить реквизит Комментарий, который будет сопровождать каждую запись о движении товара. |
| |
| Разработчик может использовать реквизиты для отбора нужных записей при обходе выборки или при использовании запроса. Следующий пример перебирает все записи регистра, у которых реквизит равен определенному значению: function doExpand(paraNum, imageNum) { if (paraNum.style.display=="none") {paraNum.style.display=""; imageNum.src="arrowdn.gif"} else {paraNum.style.display="none"; imageNum.src="arrowrt.gif"} } |


Выборка из регистра накопления
Объект РегистрНакопленияВыборка предназначен для динамического обхода записей регистра. При этом записи считываются из базы данных порциями по мере выборки. Такая схема рационально использует память и позволяет перебрать множество записей регистра,
Разработка в 1С 8.0
Движения без субконто
Самой простой тип запросов ? получение детальных записей регистра. Для этого используется основная таблица-источник регистра бухгалтерии.Обратите внимание, что для небалансовых измерений и ресурсов, а также для счета существуют поля с добавлением «Дт» и «Кт», например, ВалютаДт:
ВЫБРАТЬ
| Период, //дата и время записи |
| Регистратор, НомерСтроки, //документ и номер строки |
| Организация, //балансовое измерение Организация |
| СчетДт, СчетКт, //счета дебета и кредита |
| Сумма, //балансовый ресурс Сумма |
| ВалютаДт, ВалютаКт, //небалансовое измерение Валюта |
| ВалютнаяСуммаДт, ВалютнаяСуммаКт, //небалансовый ресурс |
| КоличествоДт, КоличествоКт, //небалансовый ресурс Количество |
| ЖО //реквизит записи ЖО |
Результат запроса представлен ниже:

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

Движения с указанием субконто
Теперь получим список движений регистра с субконто. Для этого нужно воспользоваться таблицей ДвиженияССубконто. Для демонстрации мы включим в результат поле ВидСубконтоДт1 и другие поля, содержащие информацию о субконто по дебету и кредиту проводки.Это реализуется в следующем запросе:
ВЫБРАТЬ
| Период, //дата и время записи |
| Организация, //балансовое измерение Организация |
| СчетДт, СчетКт, //счета дебета и кредита |
| Сумма, //балансовый ресурс Сумма |
| ВидСубконтоДт1, СубконтоДт1,//вид и значение субконто 1 по дебету |
| СубконтоДт2, //субконто 2 по дебету |
| СубконтоКт1 , СубконтоКт2, //субконто 1 и 2 по кредиту |
| КоличествоДт КолДт, КоличествоКт КолКт, //небалансовый ресурс |
| ЖО //реквизит записи ЖО |
Результат запроса представлен ниже:


ДвиженияССубконто
| Доступ к записям регистра бухгалтерии с учетом субконто. |
| Является расширением предыдущей таблицы. |
| |
Измерения
КонецЦикла;
ФайлDBF.ЗакрытьФайл();

Чтение XML
Чтение XML-документов производится через объект Чтение XML с помощью метода Прочитать:Чт = Новый ЧтениеXML;
Чт.ОткрытьФайл(ПутьКФайлу);
Пока Чт.Прочитать() Цикл
Дополнительно система 1С:Предприятие 8.0 поддерживает преобразование с помощью XSL. Язык XSL или eXtensible Stylesheet Language ? это язык описания стилей отображения для XML-документов. Он позволяет описать способ отображения документов для различных носителей, будь то окно вебобозревателя или устройство печати. Данные в формате XML форматируются с помощью таблицы стилей в формате XSL, в результате создается отображение данных в соответствии с заданными стилями.
Полный список объектов, их свойств и методов для работы с XML-документами приведен в документации.
ДобавитьСтроку
Индексы
Для упорядочивания содержимого DBF-файла и поиска в нем по значению одного или нескольких полей применяется механизм индексов. Его применение можно сравнить с сортировкой картотеки по определенному признаку (совокупности признаков). Однако, в отличие от картотеки, файл может иметь сразу несколько индексов, и, соответственно, являться упорядоченным одновременно по нескольким признакам.Индексы хранятся в индексном файле, причем один индексный файл может содержать сразу несколько индексов. Рекомендуется для одного файла DBF иметь один индексный файл, в котором хранятся все индексы этого файла.
Интернет-соединение
С помощью объекта ИнтернетСоединение можно устанавливать и разрывать соединение с провайдером через коммутируемые линии (модем). После установления соединения можно отправлять и принимать почту, обращаться к сайтам (веб-серверам) по протоколам HTTP/HTTPS и к FTP-серверам.Для операций через эти протоколы можно также использовать процедуры и функции глобального контекста для работы с файлами, например, КопироватьФайл.

Электронная почта (e-mail)
Для работы с электронной почтой в 1C:Предприятии 8.0 существуют следующие объекты:КоличествоСтрок
КомандаСистемы
Объект «ЧтениеТекста»
Объект ЧтениеТекста предназначен для последовательного чтения текстовых файлов. Следующий фрагмент прочитает ранее записанный файл:Файл = Новый
ЧтениеТекста("с:\test.txt",КодировкаТекста.ANSI,Символы.ПС);
Строка1 = Файл.Прочитать(7);
Строка2 = Файл.ПрочитатьСтроку();
Строка3 = Файл.Прочитать();
Файл.Закрыть();
Объект «ТекстовыйДокумент»
Объект ТекстовыйДокумент предназначен для манипулирования строками текстового файла. Все строки в системе хранятся в ко-дировке UNICODE, но есть возможность записи и чтения текстов в других кодировках. С помощью методов Прочитать и Записать текстовый документ считывается из файла или записывается в файл.При работе с текстовым документом можно манипулировать его строками, для чего предназначены следующие методы:
Объект «ЗаписьТекста»
Объект ЗаписьТекста предназначен для последовательной записи текстовых файлов.Приведенный ниже фрагмент запишет небольшой текстовый файл:
Файл= Новый
ЗаписьТекста("с:\test.txt",КодировкаТекста.ANSI.Символы.ПС);
Файл.Записать("Строка1");
Файл.ЗаписатьСтроку("Строка2");
Файл.Записать("Строка3");
Файл.3акрыть();
В результате работы программы получится следующий текстовый файл:
Строка1Строка2
Строка3

Поле HTML-документа
Элемент управления ПолеНТМL Документа позволяет отобразить HTML-страницу. Это могут быть как локальные страницы, так и страницы из Интернета.У данного элемента управления есть метод Перейти, который позволяет указать адрес страницы (URL) или HTML-макет, хранящийся в конфигурации.
Следующий фрагмент демонстрирует, как можно указать адрес сайта (веб-сервера) для данного элемента управления:
ЭлементыФормы.ПолеНТМLДокумента.Перейти("http://www.1c.ru");

ПолучитьСтроку
Следующий пример демонстрирует применение этих методов:
Текст = Новый ТекстовыйДокумент;
Текст.Прочитать("catalog.txt", КодировкаТекста.ANSI);
Текст.ЗаменитьСтроку(52, "Установка оборудования " + Стоимость);
Текст.ВставитьСтроку(53, "Замена оборудования... ");
Текст.УдалитьСтроку(10);
Текст.ДобавитьСтроку("Конец файла");
Для н = 1 По Текст.КоличествоСтрок() Цикл
Текст.Записать("catalog2.txt",КодировкаТекста.ANSI);
Текст.ТолькоПросмотр = Истина;
Текст.Показать();
Можно прочитать весь текстовый документ в строковую переменную или, наоборот, в текстовый документ записать значение строковой переменной. Для этого предназначены методы ПолучитьТекст и УстановитьТекст. Текст, содержащийся в текстовом документе до исполнения метода УстановитьТекст, удаляется:
стр = ТекстДок. ПолучитьТекст ();
ТекстДок.УстановитьТекст(стр);
Метод Очистить позволяет полностью очистить текстовый документ (удалить все строки). С помощью метода Показать текстовый документ можно отобразить на экране. Если установить свойство ТолькоПросмотр в значение Истина, то пользователь не сможет изменить текстовый документ.

Последовательный доступ к тексту
При работе с большими текстовыми файлами бывает необходимо применить последовательный доступ, при котором весь файл не загружается в память и в один момент времени производится обработка только фрагмента файла. После чтения/записи очередного фрагмента к нему нельзя уже вернуться (в памяти его больше нет), поэтому такой доступ называется последовательным. Текст обычно хранится в кодировке UNICODE, но объекты ЧтениеТекста и ЗаписьТекста умеют работать и с другими кодировками.
Работа с FTP
Система 1С:Предприятие 8.0 имеет средства для работы с файлами по протоколу FTP. Можно подключаться к FTP-серверам, скачивать и закачивать файлы, переименовывать их, обращаться к их свойствам, создавать каталоги и т.д.Ниже показан простой пример, в котором устанавливается соединение с FTP-сервером, скачивается один файл, а на его место помещается другой:
FTP = Новый FTPСоединение
("ftp://ftp.mysite.ru",21,"login","password");
FTP.УстановитьТекущийКаталог("htdocs");
FTP.Получить("index.htm", "с:\old\index.htm");
FTP.Записать("с:\new\index.htm", "index.htm");
Удаленные записи
Файлы DBF устроены таким образом, что удаление записи не приводит к физическому удалению записи из файла. Запись просто помечается на удаление и пропускается при переборе. Таким образом, размер файла остается прежним. Чтобы физически удалить все помеченные на удаление записи, нужно применить метод Сжать. Средства встроенного языка позволяют работать с записями, помеченными на удаление, перебирать их и даже отменять пометку на удаление.
Удалить Строку
ВставитьСтроку
Приведенный ниже пример подключает внешнюю
ЗаменитьСтроку
Запись DBF-файла
Следующий фрагмент программы создает DBF-файл с тремя полями и выгружает в него справочник Сотрудники:ФайлDBF = Новый XBase;
ФайлDBF.Поля.Добавить("Name","S",100);
ФайлDBF.Поля.Добавить("Dep","S",50);
ФайлDBF.Поля.Добавить("Sum","N",10,2);
ФайлDBF.Кодировка = КодировкаХВаsе.ОЕМ; //кодировка DOS
ФайлDBF.СоздатьФайл("с:\staff.dbf");
Сотрудники = Справочники.Сотрудники.Выбрать();
Пока Сотрудники.Следующий() Цикл
ФайлDBF.ЗакрытьФайл();

Запись XML
Следующий фрагмент создает простой XML-документ и записывает его в файл. Иерархический отступ конструкций языка показывает вложенность XML-элементов друг в друга:Файл = Новый ЗаписьXML;
Файл.ОткрытьФайл(ПутьКФайлу);
Файл.ЗаписатьОбъявлениеXML();
В результате работы программы получился следующий XML-документ:

ЗапуститьПриложение
Бухгалтерия: Автоматизация - Система 1С
- Бухгалтерия
- Бухгалтерская отчетность
- Автоматизация бухгалтерии
- Расчет налогов
- Бухгалтерские расчеты
- Бухгалтерский учет
- Бухгалтерия в 1С
- 1С - конфигурации
- 1С версия 7.7
- 1С версия 8.0
- 1С 8.0 программирование






