С Режим Конфигуратор

         

Срабатывает при установке отбора кнопкой


ПриУстановкеОтбора()
Срабатывает при установке отбора кнопкой на панели инструментов или выбором закладки отбора. Здесь можно проверить права доступа или сделать что-нибудь еще.
ПриУстановкеИнтервала()
Предопределенная процедура при установке интервала журнала.
ПриВыбореСтроки(ФлагОбработки)
Срабатывает при двойном щелчке на документе или при нажатии ENTER. Режим обработки выбора строки предопределенной процедурой ПриВыбореСтроки включается при помощи метода Форма.ОбработкаВыбораСтроки(1).
Сортировка

ВНИМАНИЕ. Сортировка в журнале документов по произвольной графе невозможна!
Поиск документа в журнале

Кнопка "Поиск по номеру" (см. панель инструментов формы журнала документов) + набор первых символов.

В теле описываются подготовка данных


ОбработкаПроведения(Знач)
Обработка проведения. В теле описываются подготовка данных реквизитов документа, бухгалтерских итогов к формированию операции, а также свойства этой операции (Корреспондирующие счета, Субконто и т.п.). Здесь же описываются движения регистров оперативного учета, если документ в них участвует. Выполнение проведения система самостоятельно заключает в транзакцию, поэтому не употребляйте операторов, ожидающих отклика пользователя и, вообще, постарайтесь минимизировать подготовку проведения, передав, по возможности, часть этой работы в модуль формы. В переменную Знач передается значение, указанное в методе Провести() при его работе. Параметр не обязательный.
ОбработкаУдаления Проведения()
При отмене проведения документа (удалении проведенного документа) системой автоматически удаляются его проводки и движения регистров. Тем не менее, если при проведении совершались еще какие-то действия, то отменять их нужно в теле данной процедуры. Например, если при проведении исходя из бухгалтерских итогов рассчитывалась построчная итоговая сумма, то при распроведении её нужно очищать:
Процедура ОбработкаУдаленияПроведения()
Если ВыбратьСтроки() = 1 Тогда // Обратите внимание
Пока ПолучитьСтроку() = 1 Цикл
Сумма = 0; // Сумма - реквизит документа ***
КонецЦикла;
КонецЕсли;
КонецПроцедуры
*** Пример доступности контекста документа в модуле документа
АрхивироватьДокумент()
Вызывается при смене расчетного периода журнала расчетов "вперед". Требуется описывать, если документ порождает записи журнала расчетов.
2.
Модуль формы запускается при каждом открытии формы документа. В его контексте доступны все реквизиты документа и реквизиты формы. Кроме предопределенных процедур модуля формы, там можно разместить вспомогательные процедуры и функции, вызываемые, например, экранными кнопками. Не путайте: предопределенные процедуры модуля документа нельзя размещать в модуле формы, и наоборот!

Вызывается при создании интерактивном создании


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


Процедура ПриВводеСтроки()

.......СтатусВозврата(0);

КонецПроцедуры
ПриНачалеРедактированияСтроки()
Обрабатывает начало изменения существующей (!) строки ( когда пользователь ручками вводит или изменяет значения реквизитов табличной части). Исходя из примера, описанного выше для процедуры ПриВводеСтроки(), догадайтесь, как можно запретить редактирование стоки?
ПриРедактированииНовойСтроки()
Похожая на предыдущую, но с тем отличием, что вызывается только при редактировании ВНОВЬ созданной строки.
ПриОкончанииРедактированияСтроки (ФлагНовойСтроки)
ФлагНовойСтроки - имя переменной, в которую будет записана 1, если окончен ввод НОВОЙ строки, соответственно - 0, если закончено редактирование ИМЕВШЕЙСЯ. Процедура вызывается, когда пользователь "дезактивирует" строку мышкой, нажатием Enter, или Esc (кроме случая, когда отказываются от редактирования новой строки).
ПриУдаленииСтроки()
Действие, которое будет обработано данной процедурой, очевидно исходя из имени процедуры. Что еще добавить?
ПриИзмененииПорядкаСтрок (ФлагДействия)
ФлагДействия - имя переменной, которая станет "-1", если строка поднимается вверх, станет "1" при перемещении строки вниз, и станет "0", если изменяются номера строк, например, при сортировке. А что при этом сделать - это уже ваша фантазия (моей не хватает :).
Не забывайте о том, что имеются предопределенные процедуры, общие для любых форм системы 1С, такие как ПриОткрытии(), ПриЗакрытии() и т.д. Их подробное описание здесь не приводится, дабы не перегружать главу о документах.

и время ТА. Примерный вид


ПолучитьТА()
Возвращает строку, содержащую дату и время ТА. Примерный вид результата этой функции: 09.04.02 08:30:12 Отдельно дату или время ТА можно с помощью функций ПолучитьДатуТА() и ПолучитьВремяТА()
ПолучитьПозициюТА()
Позиция ТА имеет такое же представление, как и позиция документа (см. выше). Посмотреть ее можно с помощью данной функции.
ПолучитьДокументТА()
Можно получить документ, который стоит на точке актуальности. Функция возвратит ссылку на этот документ:ПослДок = ПолучитьДокументТА();Сообщить("Последний документ имеет номер " + ПослДок.НомерДок);
УстановитьТАна(Полож)
Устанавливает ТА на начало даты или перед документом. Полож - переменная типа "Дата" или ссылка на документ. Метод можно использовать только в монопольном режиме.
УстановитьТАпо(Полож)
Метод похож на предыдущий, только устанавливает ТА на конец даты или после документа.
АвтоВремяПослеТА()
Метод документа изменяет предыдущую (в том числе и пользовательскую) установку автоматического времени нового документа так, чтобы он записывался со временем после ТА.
ПроводитьПослеТА(ФлагНеПров, ФлагПров)
Метод модуля формы документа изменяет предыдущую (в том числе и пользовательскую) установку проведения и перепроведения документа относительно ТА. Если флаги имеют значение "-1", документ будет проводиться (или перепроводиться) всегда задним числом (до ТА). Флаг с единицей установит режим проведения (перепроведения) в реальном потоке времени (т.е. после ТА). Для флага ФлагНеПров имеется дополнительное нулевое значение. В этом случае при проведении режима будет выбирать пользователь.
ИтогиАктуальны()
Метод предопределенной процедуры ОбработкаПроведения() модуля документа определяет актуальность итогов на момент проведения документа. Если метод возвратил значение "1", можно обращаться к текущим итогам с помощью методов объекта "Регистр" или с помощью запроса без указания конечной границы. Если метод возвратил "0", то необходимо запускать временный расчет регистра.

или вид документа) данной последовательности.


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

ПолучитьДокумент()
Схожие между собой методы, первый возвращает строковую позицию границы последовательности (ГП), а второй - ссылку на документ, на котором стоит граница последовательности.
ПолучитьДату(),

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

Отключить режим добавления строк по


Открыть(<ИмяФайла>)
Открыть текстовый файл с указанным именем.
КоличествоСтрок()
Возвращает число строк в тексте.
ПолучитьСтроку(<НомерСтроки>)
Возвращает строку текста с заданным номером.
ДобавитьСтроку(<Строка>)
Добавить строку в конец текста.
УдалитьСтроку(<НомерСтроки>)
Удалить строку с указанным номером.
ВставитьСтроку(<НомСтроки>,<Строка>)
Вставить строку с указанным номером.
ЗаменитьСтроку(<НомерСтроки>,<Строка>)
Заменить строку с указанным номером.
Шаблон(<Флаг>)
Включить/ Отключить режим добавления строк по шаблону. Шаблон означает, что в квадратных скобках указаны имена переменных или выражения на встроенном языке. При формировании такой строки 1С вычислит все выражения в квадратных скобках и подставит их в строку.
Пример, "Сотрудник с табельным номером [Сотрудник.Код] обработан." При формировании такой строки в режиме шаблона результирующая строка будет иметь вид: "Сотрудник с табельным номером 123 обработан."
ФиксШаблон(<Флаг>)
В отличие от метода Шаблон, ограниченные квадратными скобками поля замещаются значениями выражений с сохранением своей длины в символах, то есть обрезаются, если поле короче результата вычисления выражения и дополняются пробелами если длиннее. Если результат числовой, то в границах поля строка прижимается к правой границе.
Показать(<Заголовок>,<ИмяФайла>)
Открыть окно редактирования текста.
ТолькоПросмотр(<Режим>)
Разрешить / запретить возможность редактирования текста в окне просмотра. Вызывается до метода Показать.
Очистить()
Очищает содержимое текстового документа. Его использование позволяет заново заполнить содержимое текстового документа.
КодоваяСтраница(<Режим>)
Установить режим кодировки текста. 0 - windows-кодировка, 1 - DOS-кодировка.

Возвращает текущее числовое значение режима кодировки (на момент до исполнения метода).
Записать(<ИмяФайл>)
Записать текст в файл с указанным именем.

в окне диалога нажата кнопка


ВыбратьФайл(<ИмяФайла>)
Открывает окно диалога выбора/сохранения файла. Возвращает: 0 - если в окне диалога нажата кнопка 'Отмена', 1 - если нажата кнопка 'ОК'.
Синтаксис: ВыбратьФайл (<ТипДиалога>, <ИмяФайла>, <ИмяНачКаталога>, <ЗаголовокОкна>, <Фильтр>, <Расширение>, <Таймаут>)
Параметры:

<ТипДиалога> -: 0 - диалог типа <открыть>, 1 - диалог типа <сохранить>;

<ИмяФайла> - переменная, содержащая на входе строку с именем файла, а на выходе - имя выбранного файла;

<ИмяНачКаталога> - переменная, содержащая на входе строку с начальным каталогом, а на выходе - имя выбранного каталога;

<ЗаголовокОкна> - строка с заголовком окна;

<Фильтр> - строка с фильтром отбора файлов (например: 'Все файлы (*.*) |*.*');

<Расширение> - строка с расширением файла по умолчанию;

<Таймаут> - время ожидания отклика пользователя в секундах (необязателен).
ВыбратьФайлКартинки
Открывает окно диалога выбора/сохранения файла картинки.

Возвращает: 0 - если в окне диалога нажата кнопка 'Отмена', 1 - если нажата кнопка 'ОК'.

Синтаксис: ВыбратьФайлКартинки (<ТипДиалога>, <ИмяФайла>, <ИмяНачКаталога>, <ЗаголовокОкна>, <Расширение>, <Таймаут>)
ВыбратьКаталог
Открывает окно диалога выбора каталога.

Возвращает: 0 - если в окне диалога нажата кнопка 'Отмена'; 1 - если в окне диалога нажата кнопка 'ОК', при этом в переменную <ИмяНачКаталога> возвращается имя выбранного каталога; -1 (минус единица) - закончилось время <Таймаут> ожидания отклика пользователя.

Синтаксис: ВыбратьКаталог(<ИмяКаталога>,<ЗаголовокОкна>,<Таймаут>)
СуществуетФайл
Проверяет существование файла..

Возвращает: 1 - файл существует; 0 - не существует.

Синтаксис: СуществуетФайл(<ИмяФайла>)
КопироватьФайл
Копирует файл.

Синтаксис: КопироватьФайл(<ИмяФайлаИсточника>,<ИмяФайлаПриемника>,<ФлагПерезаписи>)


Параметры:

<ИмяФайлаИсточника> - строка с именем файла источника;

<ИмяФайлаПриемника> - строка с именем файла приемника;

<ФлагПерезаписи> -:

0 - существующий файл приемника перезаписать;

1 - существующий файл приемника не перезаписывать.
УдалитьФайл
Удаляет файл.

Синтаксис: УдалитьФайл(<ИмяФайла>)
ПереименоватьФайл
Переименовать/переместить файл.

Синтаксис: ПереименоватьФайл(<ИмяФайлаИсточника>, <ИмяФайлаПриемника>, <ФлагПерезаписи>)
Параметры:

<ИмяФайлаИсточника> - строка с именем файла источника;

<ИмяФайлаПриемника> - строка с новым именем файла;

<ФлагПерезаписи> -:

0 - запрещает перемещение файла между дисками и существующий файл приемника не перезаписывается;

1 - разрешает перемещение файла между дисками (только для файлов) и существующий файл приемника перезаписывается.
НайтиПервыйФайл
Открывает выборку файлов по заданной маске и находит первый файл.

Возвращает строку с именем найденного файла.

Синтаксис: НайтиПервыйФайл(<МаскаИмени>)
НайтиСледующийФайл
Находит следующий файл по открытой выборке файлов.

Возвращает строку с именем найденного файла.

Синтаксис: НайтиСледующийФайл()
АтрибутыФайла
Возвращает атрибуты файла (в параметрах).
Синтаксис:

АтрибутыФайла (<ИмяФайла>, <РазмерФайла>, <АтрибутыФайла>, <ВремяСоздания>, <ВремяПоследнегоДоступа>, <ВремяПоследнейЗаписи>, <РасширенноеИмяФайла>)
Атрибуты файла закодированы, об этом см. Синтакс-Помощник или описание встроенного языка
СоздатьКаталог
Создать новый каталог (папку).

Синтаксис:СоздатьКаталог(<ИмяКаталога>)
УдалитьКаталог
Удаляет каталог файлов.

Синтаксис: УдалитьКаталог(<ИмяФайла>)
УстТекКаталог
Устанавливает текущий каталог файлов.

Синтаксис: УстТекКаталог(<ИмяФайла>)
ТекКаталог
Возвращает строку с именем текущего каталога файлов.
WindowsКаталог
Возвращает строку с именем Windows директории. СвободноеМестоНаДиске
Возвращает размер свободного дискового пространства в байтах.

Синтаксис: СвободноеМестоНаДиске(<ИмяДиска>)
Также часто применяются системные функции:

КаталогИБ
Возвращает имя каталога базы данных.
КаталогПользователя
Возвращает имя каталога пользователя.
КаталогПрограммы
Возвращает имя каталога с исполняемыми файлами системы 1С:Предприятие.
КаталогВременныхФайлов
Возвращает имя каталога временных файлов.
ИмяКомпьютера
Возвращает сетевое имя компьютера, работающего в данный момент с программой.

Кроме стандартных вышеперечисленных реквизитов, разработчик


Код
Полный код счета. Например, "10.1" или "62.5.1"
Наименование
Название счета. Например, "Материалы" или "Расч. с бюдж. по НДС"
Валютный
Признак ведения валютного учета. 1 - валютный учет ведется, 0 - не ведется
Количественный
Признак ведения количественного учета. 1 - количественный учет ведется, 0 - не ведется
Забалансовый
Признак забалансового счета. 1 - счет забалансовый, 0 - балансовый
Активный
Тип остатка по счету. 1 - счет активный, 2 - счет пассивный, 3 - счет активно-пассивный
<реквизит>
Кроме стандартных вышеперечисленных реквизитов, разработчик может задать произвольное количество дополнительных реквизитов. Реквизиты могут быть периодическими, т.е. хранить значение на определенную дату. Например, может быть создан периодический реквизит "Ответственный" типа "Справочник.Сотрудники". Он будет показывать сотрудника, ответственного за ведение данного счета.
Работа с периодическими реквизитам счета не отличается от работы с периодическими реквизитами справочника.
Пример, прочитать и установить ответственного за ведение счета:
Счета = СоздатьОбъект("Счет.ОснПлан");

Счета.НайтиПоКоду("10.1");

БылОтветственный = Счета.Ответственный.Получить(НекаяДата);

Счета.Ответственный.Установить(НекаяДата, ВыбрСотрудник);

Счета.Записать();
Можно установить дату выборки периодических реквизитов, тогда ниже уже нельзя применять методы Установить и Получить

Счета = СоздатьОбъект("Счет.ОснПлан");

Счета. ИспользоватьДату(НекаяДата);

Счета.НайтиПоКоду("10.1");

БылОтветственный = Счета.Ответственный;

Счета.Ответственный = ВыбрСотрудник;

Счета.Записать();

является ли данный счет группой


ЭтоГруппа()
Определяет, является ли данный счет группой (может иметь субсчета) или нет.

Возвращает: 1 - счет является группой; 0 - счет не является группой.
Пример, вывести все синтетические счета:

Счета = СоздатьОбъект("Счет.ОснПлан");

Счета.ВыбратьСчета();

Пока Счета.ПолучитьСчет()=1 Цикл

....Если Счета.ЭтоГруппа()=1 Тогда

..........Сообщить(Счета.Код + " " + Счета.Наименование);

....КонецЕсли;

КонецЦикла;
ИспользоватьРодителя(<Счет>)
Устанавливает / выдает значение родителя (счета вышестоящего уровня), используемого для выборки счетов. Возвращает: значение типа ''Счет'' - текущее значение используемого родителя на момент до исполнения метода.
Пример, вывести все субсчета счета "10 Материалы":

Счета = СоздатьОбъект("Счет.ОснПлан");

Сч10 = СчетПоКоду(10);

Счета.ИспользоватьРодителя(Сч10);

Счета.ВыбратьСчета();

Пока Счета.ПолучитьСчет()=1 Цикл

.....Сообщить(Счета.Код + " " + Счета.Наименование);

КонецЦикла;
Уровень()
Возвращает уровень вложенности текущего счета. (возвращает 1 - для счета верхнего уровня)
Пример, вывести все счета в виде дерева:
Счета = СоздатьОбъект("Счет.ОснПлан");

Счета.ВыбратьСчета();

Пока Счета.ПолучитьСчет()=1 Цикл
отступ = "";

Для ном = 1 По Счета.Уровень() Цикл

....отступ = отступ + " ";

КонецЦикла;

Сообщить(отступ + Счета.Код + " " + Счета.Наименование);
КонецЦикла;
ПринадлежитГруппе(<Счет>)
Определяет, является ли текущий счет субсчетом для счета, указанного в качестве параметра метода. Проверка выполняется по всем вышестоящим уровням счета. Возвращает: 1 - текущий счет является субсчетом для счета, указанного в качестве параметра; 0 - не является.
Пример,

Сч10 = СчетПоКоду("10");

СубСч10 = СчетПоКоду("10.5.1");

Сообщить(СубСч10.ПринадлежитГруппе(Сч10)); //метод вернет 1
Родитель(<НомерУровня>)
Возвращает счет вышестоящего уровня для данного счета. <НомерУровня> - число, которое определяет, какого уровня вышестоящий счет должен быть выдан. Если параметр не указан - выдается непосредственный родитель.


Например, для счета "10.5" этот метод вернет счет с кодом "10".
КодСубсчета()
Выдает код счета без кодов счетов вышестоящих уровней.

Возвращает: строковое значение - код счета без кодов счетов вышестоящих уровней.
Например, для счета "10.5" этот метод вернет строковое значение "5".
ВыборГруппы(<флаг>)
Этот метод утанавливает режим выборки групп. Данный метод может применяться как для позиционируемых объектов, созданных функцией ''СоздатьОбъект'', так и для элементов диалога типа ''Счет''. По умолчанию выбор группы разрешен, за исключением счетов дебета и кредита в проводках операции.
ВыбрСчет.ВыборГруппы(1); //разрешить выбор группы

ВыбрСчет.ВыборГруппы(0); //запретить выбор группы

Этот метод выполняет поиск счета


НайтиПоКоду(код)
Этот метод выполняет поиск счета в плане счетов по коду счета, который передается методу в качестве параметра. Если счет найден, метод возвращает 1 и позиционирует объект на выбранном счете.
НайтиСчет(<счет>)
Этот метод выполняет поиск счета по значению, заданному параметром <Счет>, и позиционирует объект на выбранном счете.
Выбран()
Этот метод возвращает число со значением 1 — если счет выбран (спозиционирован) или значение не пустое, 0 — если не выбран или значение пустое.
Выбрать()
Этот метод вызывает на экран диалог, содержащий план счетов. Пользователь должен интерактивно выбрать требуемый счет. Если счет выбран, метод возвращает 1 и позиционирует объект на выбранном счете. Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.
СчетПоКоду(код[,плансчетов])
Глобальная системная функция. Возвращает счет по коду. Если план счетов не указан, тогда поиск осуществляется в основном плане счетов, заданном в Конфигураторе.
ОсновнойПланСчетов()
Глобальная системная функция. Возвращает план счетов, заданный в Конфигураторе в качестве основного.
Операции и проводки

Создание операции и проводок

Простой перебор

Перебор с фильтром

Перебор с корр. счетом

Фильтр по субконто

Графа отбора

Поиск операции

Удаление операции и проводок

Другие полезности

Операция обычно содержит одну или несколько проводок. Именно проводки влияют на бухгалтерские итоги. Каждая проводка принадлежит одной и только одной операции. Следует помнить, что любая операция вводится на основании документа. Даже операции, введенные вручную, привязываются к документу специального типа "Операция".
Работа с операциями похожа на работу с документами. Проводки можно представить, как табличную часть операции, по аналогии с табличной частью документа. С точки зрения пользователя все операции и проводки хранятся в журнале операций и связанном с ним журнале проводок.

Атрибут ДатаОперации содержит дату бухгалтерской


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


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

Дебет.Счет

Дебет.Субконто
Атрибут Дебет служит для обращения к дебетовой части текущей проводки (корреспонденции) операции. Данный атрибут возвращает агрегатный объект специального типа «Дебет», который используется только для доступа к данным дебетовой части конкретной проводки (корреспонденции) операции и не используется отдельно.
Атрибут Дебет.Счет служит для доступа к счету дебета/кредита проводки или корреспонденции операции.
Атрибут Дебет.Субконто служит для доступа к значению субконто дебета проводки (корреспонденции) операции. В конкретном случае обращение к субконто для дебета определяется счетом дебета, то есть заданными для него видами субконто по которым ведется аналитический учет по этому счету.
Разные варианты обращения к субконто см. выше в примере.
Кредит

Кредит.Счет

Кредит.Субконто
Доступ к кредитовой части текущей проводки. Работает аналогично атрибуту Дебет.
<реквизит_операции>
Помимо реквизитов операции, задаваемых на системном уровне (СуммаОперации, Содержание), в процессе конфигурирования для операции можно создать дополнительные реквизиты для хранения любой необходимой информации. Для обращения к дополнительному реквизиту операции должен быть указан его идентификатор, заданный в конфигураторе.
<реквизит_проводки>
Помимо реквизитов проводки, задаваемых на системном уровне (Сумма, Валюта и других), в процессе конфигурирования для проводки можно создать практически неограниченное число дополнительных реквизитов для хранения любой необходимой информации.

все проводки со счетом 51


50
все проводки со счетом 50
50, *
все проводки в дебет 50 счета
* , 51
все проводки с кредита 51 счета
50, 51
все проводки в дебет 50 счета с кредита 51
51; 52
все проводки со счетом 51 или счетом 52
46, 68.2
все проводки в дебет 46 счета с кредита 68.2
"бумага"
все проводки, содержащие в содержании операции или в суб­конто или в реквизитах слово «бумага»
"бумага"; "картон"
все проводки, содержащие в содержании операции или в субконто или в реквизитах слово «бумага» или слово «картон»
*, 46; "бумага"
все проводки по кредиту 46 счета, содержащие в содер­жании операции или в субконто или в реквизитах слово «бумага»
После вызова метода ВыбратьОперацииСПроводками метод ПолучитьПроводку выбирает очередную проводку из выборки удовлетворяющую заданным условиям, а метод ПолучитьОперацию
выбирает первую проводку слудующей операции удовлетворяющую заданным условиям.

Проверить проводку на соответствие корректным


ПолучитьВремя()

УстановитьВремя()
Возвращает / устанавливает время текущей операции.
ПроверитьПроводку
Проверить проводку на соответствие корректным проводкам. Список корректных проводок задает пользователь.
Выбрана()

ПроводкаВыбрана()
Проверяет выбранность операции и проводки.
ПланСчетов()
Возвращает план счетов текущей проводки.
ПолучитьДокумент()
Возвращает документ, которому принадлежит операция.
ПредставлениеПроводки()

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

Cч40 = CчeтПoKoдy("40");

СписаниеСчетаНаСч20(СчетПоКоду("25"));

СписаниеСчетаНаСч20(СчетПоКоду("26"));

Операция.ЗаписатьПроводки();

СписаниеСчета20На40();

Операция.Содержание = "Закрытие фин. результатов за " + Формат(ДатаДок, "Д ММММГГГГ");

Операция.Записать();
КонецПроцедуры
Бухгалтерские итоги
Механизм бухгалтерских итогов, поддерживаемый компонентой «Бухгалтерский учет» системы 1С:Предприятие релизует хранение накопленных итогов для обеспечения быстрого обращения к ним при составлении отчетов и выполнения различных вычислений.


Хранение итогов поддерживается системой с детализацией до месяца. Кроме того, хранятся не все возможные итоги, а те, обращение к которым выполняется наиболее часто — это остатки и обороты по счетам с детализацией по объектам аналитики (субконто), а также обороты между счетам (без учета аналитики). Такие итоги называются основными. Обращение к этим итогам выполняется системой непосредственно. Для по­лучения других итогов (с детализацией меньше месяца, с получением оборотов между различными объектами аналитики, а также сложных выборок) требуется выполнение предварительных действий — временного расчета или запроса.
Объект «БухгалтерскиеИтоги» может работать в 3-х различных режимах:
работа с основными итогами;
работа с временными итогами;
работа в режиме запроса;
При создании объекта он работает в режиме работы с основными итогами. Переключение его в остальные режимы выполняется методами Рассчитать и ВыполнитьЗапрос. В зависимости от режима изменяется состав и использование атрибутов и методов объекта.

дебетовое сальдо по счету на


СНД
дебетовое сальдо по счету на начало периода
СНК
кредитовое сальдо по счету на начало периода
СКД
дебетовое сальдо по счету на конец периода
СКК
кредитовое сальдо по счету на конец периода
ДО
дебетовый оборот по счету за период
КО
кредитовый оборот по счету за период
Синтаксис (у всех одинаковый): СНД (<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>...)

<Счет>
Значение типа «Счет» — счет расчета итогов. Может использоваться строка — код счета.
<ТипСуммы>
Необязательный параметр. Число или строка — тип возвращаемой суммы. Может принимать одно из следующих значений:
1 ("С") — сумма;
2 ("В") — валютная сумма;
3 ("К") — количество.
Если параметр не указан, метод возвращает сумму.
<Валюта>
Необязательный параметр. Значение типа «Справочник.Валюты». Если параметр не указан итоги выдаются без учета валюты. Если указана валюта, то данные выдаются по конкретной валюте. Валютная сумма может выдаваться только по конкретной валюте.
<Субконто1>

<Субконто2>

...…
Необязательный параметр. Значения субконто. Их количество зависит от настройки субконто для данного счета. Если параметры не указаны, итоги выдаются без учета аналитики.
Пример
БухИтоги = СоздатьОбъект("БухгалтерскиеИтоги);

ОстатокНаСчетеНаНачалоПериода = БухИтоги.СНД("51");

ОстатокНаСчетеНаКонецПериода = БухИтоги.СКД("51");
ПриходГвоздейНаСкладЗаПериод = БухИтоги.ДО("10.1",3,,МатериалГвозди,ЦентрСклад);

счет расчета итогов. Может использоваться


<Счет>
Значение типа «Счет» — счет расчета итогов. Может использоваться строка — код счета.
<ТипСуммы>
Необязательный параметр. Число или строка — тип возвращаемой суммы. Может принимать одно из следующих значений:
1 ("С") — сумма;
2 ("В") — валютная сумма;
3 ("К") — количество.
Если параметр не указан, метод возвращает сумму.
<Валюта>
Необязательный параметр. Значение типа «Справочник.Валюты». Если параметр не указан итоги выдаются без учета валюты. Если указана валюта, то данные выдаются по конкретной валюте. Валютная сумма может выдаваться только по конкретной валюте.
<Субконто1>

<Субконто2>

...…
Необязательный параметр. Значения субконто. Их количество зависит от настройки субконто для данного счета. Если параметры не указаны, итоги выдаются без учета аналитики.
Пример
БухИтоги = СоздатьОбъект("БухгалтерскиеИтоги);

ОстатокНаСчетеНаНачалоПериода = БухИтоги.СНД("51");

ОстатокНаСчетеНаКонецПериода = БухИтоги.СКД("51");
ПриходГвоздейНаСкладЗаПериод = БухИтоги.ДО("10.1",3,,МатериалГвозди,ЦентрСклад);

дебетовое развернутое сальдо по субсчетам


СНДР
дебетовое развернутое сальдо по субсчетам на начало периода
СНКР
кредитовое развернутое сальдо по субсчетам на начало периода
СКДР
дебетовое развернутое сальдо по субсчетам на конец периода
СККР
кредитовое развернутое сальдо по субсчетам на конец периода
Пример
* Для помещения в бухгалтерский баланс вычисляется развернутое сальдо по 68 счету, учет на котором ведется на субсчетах. Дебетовая составляющая должна попасть в актив баланса, кредитовая составляющая — в пассив.
БухИтоги = СоздатьОбъект( "БухгалтерскиеИтоги);

ДебСальдоНаНач = БухИтоги.СНДР("68");

ДебСальдоНаКон = БухИтоги.СКДР("68");

КрСальдоНаНач = БухИтоги.СНКР("68");

КрСальдоНаКон = БухИтоги.СККР("68");

дебетовое развернутое сальдо по субконто


СНДРС
дебетовое развернутое сальдо по субконто на начало периода
СНКРС
кредитовое развернутое сальдо по субконто на начало периода
СКДРС
дебетовое развернутое сальдо по субконто на конец периода
СККРС
кредитовое развернутое сальдо по субконто на конец периода
Синтаксис (у всех одинаковый):
СНДРС(<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>, <ТипФильтра1>, <Субконто2>, <ТипФильтра2>...)
<ТипФильтра>. Необязательный параметр. Тип использования субконто. (Строка или число).
"*" (1) — Разворачивать по данному субконто.
"!" (2) — Отбирать по данному субконто.
" " (3) — Не учитывать данное субконто.
Значения по умолчанию: "*" (1) — для первого субконто, " " (3) — для остальных субконто.
Пример
//Получим развернутое сальдо дебетовое на начало периода по счету 60,

// учет ведется по субконто Организации.
СР60 = БухИтоги.СНДРС("60");
//Получим развернутое сальдо дебетовое на начало периода по счету 10

//конкретному складу в разрезе материалов, учет ведется по субконто «Материалы» и «Склады».
СР10 = БухИтоги.СНДРС("10", 1, , , "*", ВыбСклад, "!");

ПериодД
Устанавливает произвольный период в качестве периода расчета итогов.

Синтаксис: ПериодД(<ДатаНачалаПериода>, <ДатаКонцаПериода>)
ПериодКВ
Устанавливает квартал в качестве периода расчета итогов.

Синтаксис: ПериодКВ(<Дата>|<НомерКвартала>, <Год>)
ПериодКВН
Устанавливает в качестве периода расчета итогов период с начала года до конца указанного квартала.

Синтаксис: ПериодКВН(<Дата>|<НомерКвартала>, <Год>)
ПериодМ
Устанавливает в качестве периода расчета итогов месяц.

ПериодМ(<Дата>|<НомерМесяца>, <Год>)
ПериодМНК
Устанавливает в качестве периода расчета итогов период с начала квартала до конца указанного месяца.

ПериодМНК(<Дата>|<НомерМесяца>, <Год>)
ПериодМНГ
Устанавливает в качестве периода расчета итогов период с начала го­да до конца указанного месяца.

ПериодМНГ(<Дата>|<НомерМесяца>, <Год>)
НачПериода
Возвращает начальную дату установленного в данный момент периода основных итогов.
КонПериода
Выдает конечную дату установленного в данный момент периода основных итогов.

Необязательный параметр. Выражение типа дата,


<НачалоПериода>
Необязательный параметр. Выражение типа дата, документ или позиция документа начала периода расчета временных итогов. Если этот параметр не указан, будут вычисляться конечные сальдо на момент, указанный в параметре <КонецПериода>.
<КонецПериода>
Необязательный параметр. Выражение типа дата, документ или позиция документа конца периода расчета временных итогов. Если этот параметр не указан, будут вычисляться начальные сальдо на момент, указанный в параметре <НачалоПериода>.
Если из двух параметров периода задан только параметр начала периода, метод Рассчитать вычислит начальные остатки — без оборотов. Наоборот, если задан параметр конца периода, будут вычисленные конечные остатки.
<ФильтрП, рСчетам>
Необязательный параметр. Счета, для которых будет выполняться временный расчет итогов. Задается значением типа «Счет» или объектом типа «СписокЗначений», содержащим значения типа «Счет», либо строкой содержащей список кодов счетов, разделенных символом ", " или ";".
<ТолькоСинтетика>
Необязательный параметр:
1 — рассчитывать сальдо только по счетам;

0 — или не указан — рассчитывать сальдо по счетам и по субконто.
Установка параметра <ТолькоСинтетика> в 1 задает выполнение расчета итогов только по счетам, без субконто. В этом случае функции для получения развернутого сальдо по субконто СНДРС, СКДРС, СНКРС, СККРС для счетов, по которым ведется аналитический учет по субконто будут возвращать 0, даже если реально в информационной базе есть остатки по этим счетам.
Если параметр <ТолькоСинтетика> не указан или равен 0, временный расчет итогов будет выполнен и по счетам, и по субконто.
<ПланСчетов>
Необязательный параметр. Ограничение расчета одним планом сче­тов.
<РазделительУчета>
Необязательный параметр. Значение разделителя учета. Ограничение расчета одним значением раз­делителя учета.

Необязательный параметр. Выражение типа дата,


<НачалоПериода>
Необязательный параметр. Выражение типа дата, документ или позиция документа начала периода запроса. Если этот параметр не указан, будут вы­числяться начальные сальдо на момент, указан­ный в параметре <КонецПериода>
<КонецПериода>
Необязательный параметр. Выражение типа дата, документ или позиция документа конца периода запроса. Если этот параметр не указан, будут вычисляться начальные сальдо на момент, указанный в параметре <НачалоПериода>.
<ФильтрПоСчетам>
Необязательный параметр. Счета, для которых будут отбираться итоги в запросе. Задается зна­чением типа «Счет» или объектом типа «Список-Значений», содержащим значения типа «Счет», либо строкой содержащей список кодов счетов, разделенных символом ", " или ";". Если параметр не указан, отбор будет выполняться по всем сче­там.
<ФильтрПоКоррСчет>
Необязательный параметр. Значение типа «Счет» — корреспондирующий счет, в корреспон­денции с которым будут отбираться итоги счета, указанного в параметре <ФильтрПоСчетам>. Задается значением типа «Счет» или объектом типа «СписокЗначений», содержащим значения типа «Счет», либо строкой содержащей список кодов счетов, разделенных символом "," или ";". Если параметр не указан, будут отбираться итоги в корреспонденции со всеми счетами.
<Валюта>
Необязательный параметр. Значение типа «Справочник.Валюты». Если параметр не указан итоги выдаются без учета валюты.
<ТипИтогов>
Необязательный параметр. Число — тип отбирае­мых итогов. Может принимать следующие значе­ния:
1 — остатки и обороты по счету в целом (по умолчанию);
2 — обороты между счетами;
3 — Первое и второе вместе.
<Периодичность>
Необязательный параметр. Позволяет получить дополнительный разрез итогов по периодам. Чис­ло или символьная строка. По умолчанию периодичность не задана. Параметр <Периодичность> может принимать следующие значения:

ния сальдо по субсчетам основного


<ФлагСчета>
Необязательный параметр. Признак развертыва­ ния сальдо по субсчетам основного счета. Число:
0 — не разворачить по субсчетам (по умолчанию);
1 — разворачивать по субсчетам;
-1 (минус единица) — не выдавать итоги по сче­там-группам.
<ФлагКоррСчета>
Необязательный параметр. Признак развертыва­ния сальдо по субсчетам корреспондирующего счета. Число:
0 — не разворачить по субсчетам (по умолчанию);
1 — разворачивать по субсчетам;
-1 (минус единица) — не выдавать итоги по кор­респондирующим счетам-группам.

ных итогов будет выполнен только


<ВидСубконто>
Значение типа «Вид Субконто» — расчет времен­ ных итогов будет выполнен только для субконто указанного вида. Задается значением типа «Вид Субконто» или строкой содержащей имя иденти­фикатора вида субконто, как он назван в конфи­гураторе.
<Субконто>
Необязательный параметр. Здесь может быть за­дано или одно конкретное значение субконто, по которому будут отобраны итоги по аналитике или объект типа «Список значений», где можно задать несколько значений субконто. Если параметр не задан — то считается пустым значением субконто.
<ТипФильтра>
Необязательный параметр. Число — тип фильтра по субконто. Может принимать следующие значе­ния:
1 — разворачивать по данному субконто (по умолчанию),
2 — отбирать по данному субконто,
3 — не учитывать это субконто вообще.
<ПоГруппам>
Необязательный параметр. Число — группировка др итогов по субконто. Параметр <ПоГруппам> имеет смысл, если параметр <ТипФильтра> равен 1, а вид субконто, заданный параметром <ВидСубконто>, имеет тип значения «Справочник». Параметр может принимать значения:
0 — не показывать итоги по группам справочника (по умолчанию);
1 — показывать итоги по группам справочника.
Пример:
* Данный запрос формирует итоги по счету 10 в разрезе материалов по одному складу.
БухИтоги.ИспользоватьСубконто(ВидыСубконто.Материалы, , 1);

БухИтоги.ИспользоватьСубконто(ВидыСубконто.Склады, ВыбСклад, 2);

БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон, "10");

Синтаксис: ВыбратьСчета


ВыбратьСчета

ПолучитьСчет
Синтаксис: ВыбратьСчета(<ФлагВсе>, <ФлагДК>, <Номер>, <РазвСальдо>)
<ФлагВсе>
Необязательный параметр.
0 — отбирать те счета, которые имели итоги на этом уровне обхода итогов запроса (по умолчанию);
1 — включить в выборку все счета, которые имели итоги в данном запросе;
-1, -2 ... — включить в выборку счета, которые имели итоги в группировке n-го вышестоящего уровня.
<ФлагДК>
Необязательный параметр.
1 — включать в выборку счета только с дебетовы­ми оборотами;
2 — включать в выборку счета только с кредито­выми оборотами.
0 — включать в выборку счета вне зависимости от дебетовых/кредитовых оборотов (по умолчанию).
<Номер>
Необязательный параметр. Положительное целое число — номер выборки. Если параметр не ука­зан, выборке присваивается номер 0.

Выборке, открываемой методом ВыбратьСчета, может быть присвоен номер — положительное целое число. Номер — это «метка» выборки. Номер может использоваться для обращения к результатам выборки при помощи метода ПолучитьСчет. Использование этой метки необходимо, если требуется получить две группировки по счету.
<РазвСальдо>
Необязательный параметр. Признак необходимости рассчитывать развернутое сальдо по субконто. Используется только если в запросе участвуют субконто.
1 — рассчитывать развернутое сальдо.
0 — не рассчитывать развернутое сальдо (по умолчанию);
Синтаксис: ПолучитьСчет(<Номер>, <Счет>)

<Номер>
Необязательный параметр. Положительное целое число — номер выборки. Если раньше было открыто несколько выборок по счету.
<Счет>
Необязательный параметр. Конкретное значение счета, которое нужно получить из выборки.
Пример.
БухИтоги.Запрос(Дата1, Дата2);

БухИтоги.ВыбратьСчета();

Пока БухИтоги.ПолучитьСчет() = 1 Цикл
Деб = БухИтоги.ДО();

Кред = БухИтоги.КО();
КонецЦикла;
ВыбратьКорСчета

ПолучитьКорСчет
Синтаксис

ВыбратьКорСчета(<ФлагВсе>, <ФлагДК>, <Номер>)

ПолучитьКорСчет(<Номер>, <Счет>)
Пример:
БухИтоги.Запрос(Дата1, Дата2);

БухИтоги.ВыбратьСчета();

Пока БухИтоги.ПолучитьСчет() = 1 Цикл
БухИтоги.ВыбратьКорСчета();

Пока БухИтоги.ПолучитьКорСчет() = 1 Цикл
Деб = БухИтоги.ДО();

Кред = БухИтоги.КО();
КонецЦикла;
КонецЦикла;
ВыбратьВалюты

ПолучитьВалюту
Синтаксис:

ВыбратьВалюты(<ФлагВсе>, <ФлагДК>, <Номер> , <РазвСальдо>, <Сортировка>)

ПолучитьВалюту(<Номер>, <Валюта>)
Пример:
БухИтоги.Запрос(Дата1, Дата2);

БухИтоги.ВыбратьСчета();

Пока БухИтоги.ПолучитьСчет() = 1 цикл
БухИтоги.ВыбратьВалюты();

Пока БухИтоги.ПолучитьВалюту() = 1 цикл
ДебВ = БухИтоги.ДО(2);

КредВ = БухИтоги.КО(2);
КонецЦикла;
КонецЦикла;
ВыбратьПериоды

ПолучитьПериод
Синтаксис:

ВыбратьПериоды(<ФлагВсе>, <ФлагДК>, <Номер>, <РазвСальдо>)

ПолучитьПериод(<Номер>, <ДатаНачалаПериода>)
Пример:
БухИтоги.ВыполнитьЗапрос(Дата1, Дата2, , , , , "Месяц");

БухИтоги.ВыбратьСчета();

Пока БухИтоги.ПолучитьСчет() = 1 цикл
БухИтоги.ВыбратьПериоды();

Пока БухИтоги.ПолучитьПериод() = 1 цикл
Деб = БухИтоги.ДО();

Кред = БухИтоги.КО();
КонецЦикла;
КонецЦикла;
ВыбратьСубконто

ПолучитьСубконто
Синтаксис:

ВыбратьСубконто(<Индекс>, <ФлагВсе>, <ФлагДК>, <Номер>, <РазвСальдо>, <Сортировка>, <ПорядокОбхода>)

ПолучитьСубконто(<Индекс>, <Номер>, <Субконто>)


Пример:
БухИтоги.ИспользоватьСубконто(ВидыСубконто.Материалы, , 1);

БухИтоги.ИспользоватьСубконто(ВидыСубконто.Склады, , 1);

БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон, "10");

БухИтоги.ВыбратьСубконто(1);

Пока БухИтоги.ПолучитьСубконто(1) = 1 цикл
БухИтоги.ВыбратьСубконто(2);

Пока БухИтоги.ПолучитьСубконто(2) = 1 цикл
Деб = БухИтоги.ДО();

Кред = БухИтоги.КО();
КонецЦикла;
КонецЦикла;
ВыбратьКорСубконто

ПолучитьКорСубконто
Синтаксис:

ВыбратьКорСубконто(<Индекс>, <ФлагВсе>, <ФлагДК>, <Номер>, <РазвСальдо>, <Сортировка>, <ПорядокОбхода>)

ПолучитьКорСубконто(<Индекс>, <Номер>, <Субконто>)
БухИтоги.ИспользоватьСубконто(ВидыСубконто.Товары, , 1);

БухИтоги.ИспользоватьКорСубконто(ВидыСубконто.Клиенты, , 1);

БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон);

БухИтоги.ВыбратьСубконто();

Пока БухИтоги.ПолучитьСубконто() = 1 цикл
БухИтоги.ВыбратьКорСубконто();

Пока БухИтоги.ПолучитьКорСубконто() =1 цикл
Деб = БухИтоги.КорДО();

Кред = БухИтоги.КорКО();
КонецЦикла;
КонецЦикла;

Текущий корр. счет, выбранный функцией


Счет
Текущий счет, выбранный функцией ПолучитьСчет
КорСчет
Текущий корр. счет, выбранный функцией ПолучитьКорСчет
Валюта
Текущая валюта, выбранная функцией ПолучитьВалюту
НачДата

КонДата
Начальная и конечная дата текущего периода, выбранного функцией ПолучитьПериод
Операция
Атрибут позволяет обращаться к текущей операции, если запрос получен с детализацией итогов по периоду «Операция» и «Проводка».

Субконто

КорСубконто

ПредставлениеСубконто

ПредставлениеКорСубконто
Синтаксис

Субконто(<Номер> | <ВидСубконто>)

КорСубконто(<Номер> | <ВидСубконто>)
Пример
БухИтоги.ИспользоватьСубконто(ВидыСубконто.Товары, , 1);

БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон);

БухИтоги.ВыбратьСубконто();

Пока БухИтоги.ПолучитьСубконто() = 1 цикл

......... Сообщить(БухИтоги.Субконто());

КонецЦикла;
ЭтоГруппа
Для тех субконто, которые выбираются из иерархических справочников метод возвращает 1, если текущее значение является группой справочника.
СНД

СНК

СКД

СКК

ДО

КО
СНД — дебетовое сальдо на начало периода;

СКД — дебетовое сальдо на конец периода;

СНК — кредитовое сальдо на начало периода;

СКК — кредитовое сальдо на конец периода;

ДО — дебетовый оборот за период;

КО — кредитовый оборот за период.
Синтаксис (у всех одинаковый): СНД(<ТипСуммы>)
Параметр <ТипСуммы> может принимать следующие значения:
1 ("С") - сумма (по умолчанию)
2 ("В") - валютная сумма
3 ("К") - количество
СНДРС

СКДРС

СНКРС

СККРС
СНДРС — дебетовое развернутое сальдо на начало периода;

СКДРС — дебетовое развернутое сальдо на конец периода;

СНКРС — кредитовое развернутое сальдо на начало периода;

СККРС — кредитовое развернутое сальдо на конец периода;
КорДО

КорКО
Возвращает дебетовый или кредитовый оборот между корреспондирующими счетами или субконто.
ВыбранаПоДт

ВыбранаПоКт
Эти функции возвращают 1, если выбран итог по дебету / кредиту.
Простая бухгалтерия

Глава 1

1. Постановка задачи.

2. Реализация.

2.1 Создание конфигурации.

2.2 Создание пользователя.
В этой главе мы кратко опишем простую систему бухгалтерского учета. В серьезных задачах этап постановки задачи и проектирования может занимать столько же времени, сколько программирование и даже больше. Обычно он завершается составлением технического задания и другой проектной документации. У нас все будет просто, как по волшебству!
Глава 2

2.3 Справочник Сотрудники.

2.4 Справочник фирм.

2.5 Справочник валют.

2.6 Справочник контрагентов.

2.7 Работа со справочником контрагентов.

2.8 Производственная деятельность фирмы.

2.9 Справочник НДС.
В этой главе мы наколдуем основные справочники, касающиеся внешних сущностей: контрагентов, валют и т.д.
Глава 3

2.10 Справочник Комплектующие.

2.11 Справочник Изделия.

2.12 Справочник Комплектация.

2.13 Работа со справочниками Изделия и Комплектация.

2.14 Справочник Склады.

2.15 Документооборот.
В этой главе мы сотворим основные справочники, касающиеся производственной деятельности фирмы.
Глава 4

2.16 Определение состава плана счетов.

2.17 Определение перечня субконто.

2.18 Субконто МестоХранения.

2.19 Субконто Комплектующее.

2.20 Субконто ВидЗатрат.

2.21 Субконто Изделие.

2.22 Субконто Сотрудник.

2.23 Субконто Контрагент.

2.24 Субконто по документам.

2.25 Создание Плана счетов.
В этой главе мы произведем настройку плана счетов и укажем всю необходимую аналитику по счетам (субконто)..
Глава 5

2.26 Документ Операция.

2.27 Операция сама по себе.

2.28 Объект Проводки.

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

2.30 Документы. Общая часть.

2.31 Документ УчетНДС.

2.32 Работа с документом УчетНДС.

2.33 Документ ПриходнаяНакладная.

2.34 Работа с документом ПриходнаяНакладная.

2.35 Документ РасходныйОрдер.

2.36 Отчет по 60 счету
Документы обеспечивают ввод сведений о фактах и событиях реального мира и генерируют проводки. В этой главе мы сделаем первый отчет, берущий данные с бухгалтерских счетов.
Глава 7

2.37 Документ НарядНаСборку.

2.38 Документ НакладнаяНаВыпуск.

2.39 Документ РасходнаяНакладная.

2.40 Документ ПриходныйОрдер.

2.41 Документ Ведомость.
В этой главе мы создадим документы, касающиеся производственной деятельности фирмы.
Глава 8

2.42 Отчет по остаткам на складе готовой продукции.

2.43 Отчет по покупателям.

2.44 Новые счета в плане счетов.

2.45 Совсем другая история.
Отчеты позволяют получить полную и целостную картину в различных разрезах.

Глава 1
1. Постановка задачи.
Написать простейшую конфигурацию по учету хозяйственных операций для производственной фирмы. Условия:
Производство готовых изделий из покупных комплектующих путем сборки;
Учет НДС, прочие налоги и сборы не учитываем;
Учет заработной платы, работников непосредственно занятых в производстве (оплата сдельная);
Четыре типа документов по движению заготовок, готовых изделий и товаров (приходная накладная, наряд на сборку, накладная на выпуск из производства и расходная накладная), два по движению денег (приходный ордер, расходный ордер), один по выплате заработной платы (ведомость) и один по учету НДС;
Валюта учета одна;
Учет по FIFO;
Задача будет решена на базе платформы 1С:Предприятие 7.7.
Крайне полезным, перед изучением сего опуса, будет полистать мой первый шедевр "Построение простейшей конфигурации по учету складских операций". Все сокращения, условные обозначения и т.д и т.п. описаны там.
2. Реализация.
2.1 Создание конфигурации.
Для начала создадим пустую конфигурацию и укажем основные настройки. Как это сделать – см. мою методичку "Построение простейшей конфигурации по учету складских операций". Конфигурацию поместим в каталог (для определенность "Study_2").
Настроим свойства задачи:

На закладке "Общие"
Идентификатор – Производство 1.0;
Синоним – Производство;
Комментарий – учебная конфигурация;
На закладке "Задача"
Основной язык – Русский;
Округление – 1.5 до 2
Разрешить непосредственное удаление объектов – Да;
На закладках "Автор" и "Заставка" через [Изменить] вносим разную дополнительную информацию и добавляем заставку и логотип (если есть что добавлять);
2.2 Создание пользователя.
Создаем пользователя "Программист" (см. методичку "Построение простейшей конфигурации по учету складских операций"). Пароль давать не будем. Интерфейс Администратора мы будем создавать автоматически, по мере ввода новых объектов метаданных, если, конечно, будем пользоваться при их создании конструкторами, но можем и в ручном режиме;


Глава 2
2.3 Справочник Сотрудники.
На фирме, что мы описываем будет кто-то работать (или дурака валять, но это кому как нравится). Заведем списочек этих работничков. Для списка создадим справочник. В поле Код будем хранить табельный номер, а в Наименовании – ФИО сотрудника. Сведем структуру справочника в таблицу, как это делалось в предыдущей методичке.

Идентификатор: Сотрудники

Подчинен: нет

Количество уровней: 1

Код: 5     Тип кода: число   Серии кодов: подчинение

Наименование: 50

Основное представление: наименование

Группы сверху: да

Автонумерация: да     Уникальность: да

Одна форма для элемента и группы?: нет

Редактировать: в списке

"Код" – табельный номер.

"Наименование" – ФИО сотрудника.
Реквизит
Описание
ТипЗначения
Доп.
Исп.
Изм.

Создаем новый справочник;

Создадим форму списка;
Переименуем поле "Код" в "Таб. №", а поле "Наименование" в "ФИО"
Перейдем в 1С:Предприятие и заполним список сотрудников:

и конечные результаты расчета зарплаты


Ведомость на зарплату
Предназначен для кассира и показывает сумму "на руки" по каждому сотруднику.
Лицевые счета
Показывает промежуточные и конечные результаты расчета зарплаты по всем сотрудникам. Можно задать фильтр по категории и/или подразделению.
Расчетные листочки
Показывает промежуточные и конечные результаты расчета зарплаты по конкретному сотруднику. Расчетный листочек выдается сотруднику перед выдачей зарплаты для ознакомления. Можно распечатать листочек только для указанного сотрудника или по всем сотрудникам сразу. Можно задать фильтр и/или группировку по категории и подразделению.
Свод
Показывает сводные результаты расчета с различной группировкой. Строка отчета соответствует виду расчета или группе расчетов. Колонка отчета соответствует категории или подразделению. По строке подводится итог. Можно задать фильтр по категории и/или подразделению.
Поиск вида расчета
Позволяет выбрать всех сотрудников с определенным видом расчета или группой расчетов. Пользователь может задать фильтр по категории и/или подразделению. Можно задать любой период и при необходимости разбить его по месяцам. Есть возможность вывести дополнительные графы по сотруднику.

Описание конфигурации


Быстрая и простая конфигурация для сети магазинов.

Идеальна для модели "Склад - сеть магазинов".

Мощные аналитические отчеты.

Анализ расхода товара по складу, реализатору (по прибыли, по количеству)

Анализ поступления выручки торговых точек

Анализ остатков по складу и реализаторам

Анализ розничных цен

Импорт-экспорт единичных документов. Удобно перебрасывать документы из

одной программы в другую, если учет ведется в разных программах.

Учет товара по торговым точкам идет в розничных ценах.

Весь товарооборот идет через склад. Например переброс товара из

одной торговой точки в другую проходить в два этапа.

1 Возврат товара на склад (ДокументРеализатора-Возврат)

2 Отпуск товара реализатору (ДокументРеализатора-Расход)

Списать товар с торговой точки можно несколькими способами.

1. Списание суммой (СписаниеРеализатора)

2. Списание товаром (ДокументРеализатора-Списание)

3. Возврат на склад, потом списать со склада (ДокументРеализатора-Возврат)

Большинство отчетов вынесено во внешние отчеты. Исправлять и дорабатывать

отчеты можно без выбрасывания пользователей из программы 1с-Торговля.

В прайс-листе видны две колонки: остатки на складе и остатки реализатора.

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



Организация подбора


Синтаксик: ОткрытьПодбор(<Объект>,<ИмяФормы>,<КонтекстФормы>,<ФлагМножВыбора>,<ТекЗнач>)

ОткрытьПодбор("Справочник.Номенклатура","ФормаДляПодбора",Конт,1);

Процедура ОбработкаПодбора(Элемент,КонтФормы)

...НоваяСтрока();

...Товар = Элемент;

КонецПроцедуры

Можно воспользоваться контекстом формы и сразу перейти в нужную группу, например:

ОткрытьПодбор("Справочник.Номенклатура","ФормаДляПодбора",Конт,1);

Конт.ИспользоватьРодителя(грпСпиртное);

Процедура ОбработкаПодбора(Элемент,КонтФормы)

...НоваяСтрока();

...Товар = Элемент;

КонецПроцедуры



Осн ставка


2

М16

ГДЕ-221

Изделие №2

8.00

80.00




ПРС-555

Изделие №1

12.50

120.00



Основное окно конфигуратора


Слева вы видите дерево конфигурации, в котором редактируется структура базы данных.

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



Отбор


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



Отчет "Библиотечная выписка"


Экранная форма диалога отчета выглядит следующим образом:

Пример работы отчета:

Модуль отчета см. в конфигурации "Мини-библиотека".



Отчет "Доходы и расходы"


Экранная форма диалога отчета выглядит следующим образом:

Сначала указывается тип отчета: доходы или расходы. Затем выбирается период, за которые формируется отчет. В отчете можно указать 1 или 2 группировки Участник и Статья в произвольном порядке. Также можно указать отбор по одному участнику или статье.

Модуль отчета см. в конфигурации "Денежки".

Пример работы отчета (отчет о доходах, включены две группировки):

Пример работы отчета (отчет о расходах, включена только одна группировка Статьи):

Мини-библиотека



Отчет "Долги читателя"


Экранная форма диалога отчета выглядит следующим образом:

Пример работы отчета:

Модуль отчета см. в конфигурации "Мини-библиотека".



Отчет курьера


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

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

При проведении документа совершаются движения в регистрах:

Процедура ОбработкаПроведения()

ВыбратьСтроки();

Пока ПолучитьСтроку()=1 Цикл

Если Доставлено > 0 Тогда

Регистр.Доставка.Товар = Товар;

Регистр.Доставка.Клиент = Клиент;

Регистр.Доставка.Цена = Цена;

Регистр.Доставка.Заказ = Заказ;

Регистр.Доставка.ДатаДоставки = ДатаДоставки;

Регистр.Доставка.Количество = Доставлено;

Регистр.Доставка.Сумма = Сумма;

Регистр.Доставка.ДвижениеРасходВыполнить();

Регистр.Заказы.Товар = Товар;

Регистр.Заказы.Клиент = Клиент;

Регистр.Заказы.ДатаДоставки = ДатаДоставки;

Регистр.Заказы.Цена = Цена;

Регистр.Заказы.Заказ = Заказ;

Регистр.Заказы.Количество = Доставлено;

Регистр.Заказы.Сумма = Сумма;

Регистр.Заказы.ДвижениеРасходВыполнить();

Регистр.Доходы.Товар = Товар;

Регистр.Доходы.Клиент = Клиент;

Регистр.Доходы.Доход = Сумма;

Регистр.Доходы.ДвижениеВыполнить();

КонецЕсли;

Если Фл_ВозвратОстатков=1 Тогда

Если Доставлено < Заказано Тогда

Регистр.Доставка.Товар = Товар;

Регистр.Доставка.Клиент = Клиент;

Регистр.Доставка.Цена = Цена;

Регистр.Доставка.Заказ = Заказ;

Регистр.Доставка.ДатаДоставки = ДатаДоставки;

Регистр.Доставка.Количество = Доставлено;

Регистр.Доставка.Сумма = Сумма;

Регистр.Доставка.ДвижениеРасходВыполнить();

Регистр.Остатки.Товар = Товар;

Регистр.Остатки.Количество = Заказано - Доставлено;

Регистр.Остатки.ДвижениеПриходВыполнить();

КонецЕсли;

КонецЕсли;

КонецЦикла;

КонецПроцедуры



Отчет "Остатки"


Экранная форма диалога отчета выглядит следующим образом:

Модуль отчета:

Процедура Сформировать()

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса = "

|Кошелек = Регистр.Кошельки.Кошелек;

|Участник = Регистр.Кошельки.Кошелек.Участник;

|Сумма = Регистр.Кошельки.Сумма;

|Группировка Кошелек;

|Функция СуммаВКошельке = КонОст(Сумма);

|Условие(Кошелек в ВыбрКошелек);

|Условие(Участник в ВыбрУчастник);

|";

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

.......Возврат;

КонецЕсли;

Таб = СоздатьОбъект("Таблица");

Таб.ВывестиСекцию("Все<");

Пока Запрос.Группировка(1) = 1 Цикл

....... Таб.ВывестиСекцию("Кошелек");

КонецЦикла;

Таб.ВывестиСекцию("Все>");

Таб.Показать();

КонецПроцедуры

Пример работы отчета:



Отчет "Остатки материалов"


Экранная форма диалога отчета выглядит следующим образом:

Шаблон печатной формы (в Конфигураторе):

Модуль отчета:

Процедура Сформировать()

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса = "

|Материал = Регистр.ОстаткиМатериалов.Материал;

|Склад = Регистр.ОстаткиМатериалов.Склад;

|Количество = Регистр.ОстаткиМатериалов.Количество;

|Функция КоличествоКонОст = КонОст(Количество);

|Группировка Материал;

|Группировка Склад;

|Условие (Материал в ВыбрМатериалГруппа);

|Условие (Склад в ВыбрСклад);

|";

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

...Возврат;

КонецЕсли;

Таб = СоздатьОбъект("Таблица");

Таб.ВывестиСекцию("Заголовок");

Пока Запрос.Группировка(1) = 1 Цикл

Если Запрос.Материал.ЭтоГруппа()=1 Тогда

... Таб.ВывестиСекцию("Группа");

Иначе

Таб.ВывестиСекцию("Материал");

Если Фл_НеВыводитьСклады = 0 Тогда

...Пока Запрос.Группировка(2) = 1 Цикл

......Таб.ВывестиСекцию("Склад");

...КонецЦикла;

КонецЕсли;

КонецЕсли;

КонецЦикла;

Таб.Опции(0);

Таб.Показать("ОстаткиМатериалов", "");

КонецПроцедуры

Примеры работы отчета:

В следующем примере отключена детализация по складам:



Отчет "Товары"


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

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

Пример работы отчета представлен ниже:

Дефицит определяется по формуле:

Дефицит = (Заказано - Доставляется) - Остаток;



Открытие формы


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

Конт = 0; //контекст формы (ссылка на форму)

ОткрытьФорму("Справочник.Сотрудники.Основная",Конт); //открыть форму списка справочника

ОткрытьФорму(ВыбрСотрудник); //открыть форму элемента справочника

ОткрытьФорму("Отчет.ГлавнаяКнига");

ОткрытьФорму("Документ.ПриемНаРаботу",Конт); //новый документ

//можно открыть форму модально и еще можно передать в форму параметр

//в модуле формы переданный параметр доступен через конструкцию Форма.Параметр

ОткрытьФормуМодально("Обработка.УсловияПоиска",10);



Отсчет даты


Получим дату, отстоящую по календарю от указанной даты на заданное количество дней. Календарь пропускает дни с нулевыми значениями (выходные и праздники).

КонецОтпуска = Календари.Служащие.ПолучитьДату (НачалоОтпуска, 28);

Мини-зарплата



Параметры предопределенных процедур


Некоторые предопределенные процедуры имеют параметры, в которые передается информация о произошедшем событии. Например, для процедуры ПриВыбореВладельца(Элемент) в параметр Элемент передается значение нового владельца.



Печатные формы документа


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

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

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

Маленькая хитрость: если вы создали свою печатную форму для какого-либо документа, или "заточили" типовую, рекомендую сохранить её в отдельном файле печатной формы (*.mxl) тогда при переходе с релиза на релиз вам не будет нужды переделывать таблицы документа, достаточно будет в операторе ИсходнаяТаблица() процедуры печати вставить ссылку на внешний файл.



Перебор документов


ДокПрием.ВыбратьДокументы(дата1, дата2); //можно задать период выборки

Пока ДокПрием.ПолучитьДокумент()=1 Цикл

......<действия с текущим документом>

КонецЦикла;



Перебор групп расчета


Для Ном=1 По Метаданные.ГруппаРасчета() Цикл

....кфгГруппаРасч = Метаданные.ГруппаРасчета(Ном);

....//недоработка фирмы 1С. По имени группы расчета нельзя получить саму группу расчета как объект.

....//если помечтать, то можно было бы сделать вот так:

....// ГруппаРасч = ГруппаРасчета.ПолучитьАтрибут(кфгГруппаРасч.Идентификатор);

КонецЦикла;

Еще я совсем не понимаю, почему группа расчетов не является типообразующим

объектом в 1С. Т.е. нельзя, например, завести реквизит справочника и указать его тип "ГруппаРасчетов.ВсеНачисления". Нельзя в диалоге поместить поле типа "ГруппаРасчета", чтобы пользователь мог самостоятельно выбрать группу расчетов так же, как он выбирает вид расчета. Будем надеяться, что в версии 8.0 фирма 1С исправит эти упущения.

Календари

Ссылка на календарь

Подсчет дней и часов

Отсчет даты



Перебор операций и проводок с фильтром


Синтаксис: ВыбратьОперацииСПроводками (<НачалоПериода>, <КонецПериода>, <Фильтр>, <Валюта>, <ПланСчетов>, <РазделительУчета>)

Пример, выбрать проводки по счету "10.1" по филиалу "Северный".

Опер = СоздатьОбъект("Операция");

Опер.ВыбратьОперацииСПроводками(НачДата, КонДата,"10.1",,ПланыСчетов.Основной,филСеверный);

Пока Опер.ПолучитьПроводку()=1 Цикл

....<действия с текущей проводкой>

КонецЦикла;

Примеры фильтра:



Перебор операций и проводок с указанием счета и корр. счета


Синтаксис: ВыбратьОперацииСПроводками (<НачалоПериода>, <КонецПериода>, <Счет>, <КорСчет>, <Флаг>, <Валюта>, <ПланСчетов>, <РазделительУчета>)

<Счет>. Необязательный параметр. Счет — счет, по которому будут отбираться проводки.

<КорСчет>. Необязательный параметр. Счет — корреспондирующий счет, по которому будут отбираться проводки. Параметр имеет смысл, если указан параметр <Счет>.

<Флаг>. Необязательный параметр. Число — признак вида оборота. Параметр может принимать значения: 1 — отбирать проводки только по дебету счета; 2 — отбирать проводки только по кредиту счета; 3 — отбирать проводки и по дебету, и по кредиту. По умолчанию 3.

Пример, выбрать проводки Д10.1 К51 или Д51 К10.1

Сч10_1 = СчетПоКоду("10.1");

Сч51 = СчетПоКоду("51");

Опер = СоздатьОбъект("Операция");

Опер.ВыбратьОперацииСПроводками (НачДата, КонДата, Сч10_1, Сч51,,,ПланыСчетов.Основной);

Пока Опер.ПолучитьПроводку()=1 Цикл

....<действия с текущей проводкой>

КонецЦикла;



Перебор счетов


1-й вариант:

Счета = СоздатьОбъект("Счет.ОснПлан");

Счета.ВыбратьСчета();

Пока Счета.ПолучитьСчет()=1 Цикл

....ТекСчет = Счета.ТекущийСчет();

....<действия с тек. счетом>

КонецЦикла;

2-й вариант:

Счета = СоздатьОбъект("Счет"); //не указан план счетов

Счета.ИспользоватьПланСчетов(ПланыСчетов.ОснПлан); //а вот теперь указан

Счета.ВыбратьСчета();

Пока Счета.ПолучитьСчет()=1 Цикл

....ТекСчет = Счета.ТекущийСчет();

....<действия с тек. счетом>

КонецЦикла;



Перебор списка значений


стр = "";

Для Номер = 1 По СписокЗнач.РазмерСписка() Цикл

...значение = СписокЗнач.ПолучитьЗначение(Номер, стр); //получить значение и представление

...Сообщить(значение + ", " + стр);

КонецЦикла;



Перебор строк таблицы значений


1-й способ.

ТабЗнач.ВыбратьСтроки();

Пока ТабЗнач.ПолучитьСтроку()=1 Цикл

...Сообщить(ТабЗнач.Сотрудник);

КонецЦикла;


2-й способ.

Для НомерСтроки = 1 По ТабЗнач.КоличествоСтрок() Цикл

...ТабЗнач.ПолучитьСтрокуПоНомеру(НомерСтроки);

...Сообщить(ТабЗнач.Сотрудник);

КонецЦикла;



Перебор видов расчета, входящих в группу


Для Ном=1 По ГруппаРасчетов.ВсеНачисления.Количество() Цикл

....ВР = ГруппаРасчетов.ВсеНачисления.ПолучитьРасчет(Ном);

....Сообщить(ВР.Код);

КонецЦикла;



Перебор всех видов расчета


Для Ном=1 По Метаданные.ВидРасчета() Цикл

....кфгВР = Метаданные.ВидРасчета(Ном);

....ВР = ВидРасчета.ПолучитьАтрибут(кфгВР.Идентификатор);

КонецЦикла;



Перебор записей журнала расчетов


Например, организуем перебор записей с периодом действия в январе.

ЖЗ = СоздатьОбъект("ЖурналРасчетов.Зарплата");

ДатаНач = '01.01.2002';

ДатаКон = '31.01.2002';

ЖЗ.ВыбратьЗаписи(ДатаНач, ДатаКон);

Пока ЖЗ.ПолучитьЗапись()=1 Цикл

......<действия с тек. записью>

КонецЦикла;

А теперь организуем перебор записей, введенных в январе.

ЖЗ = СоздатьОбъект("ЖурналРасчетов.Зарплата");

ДатаНач = '01.01.2002';

ЖЗ. ВыбратьПериод(ДатаНач);

Пока ЖЗ.ПолучитьЗапись()=1 Цикл

.......<действия с тек. записью>

КонецЦикла;

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

Посчитаем все начисления текущего сотрудника за январь:

ВсегоНачислено = 0;

ЖЗ.ВыбратьЗаписиПоОбъекту (ТекСотр, ДатаНач, ДатаКон);

Пока ЖЗ.ПолучитьЗапись()=1 Цикл

....Если ЖЗ.ВидРасч.ВходитВГруппу(ГруппаРасчетов.ВсеНачисления)=1 Тогда

..........ВсегоНачислено = ВсегоНачислено + ЖЗ.Результат;

....КонецЕсли;

КонецЦикла;

Теперь рассчитаем все записи текущего сотрудника, введеные в текущем месяце:

ЖЗ.ВыбратьПериодПоОбъекту (ТекСотр, ДатаНач);

Пока ЖЗ.ПолучитьЗапись()=1 Цикл

........ЖЗ.Рассчитать();

КонецЦикла;

Рассчитаем все записи по документу, независимо от того, в каком расчетном периоде записи порождались:

ЖЗ.ВыбратьЗаписиПоДокументу

(ВыбрДокумент);

Пока ЖЗ.ПолучитьЗапись()=1 Цикл

......ЖЗ.Рассчитать();

КонецЦикла;

Рассчитаем все записи по указанному подразделению. В журнале расчетов указана графа отбора "Подразделение".

ТекПер = ЖЗ.ТекущийПериод();

ЖЗ.ВыбратьПоЗначению ("Подразделение",ВыбрПодразделение, ТекПер, ТекПер);

Пока ЖЗ.ПолучитьЗапись()=1 Цикл

......ЖЗ.Рассчитать();

КонецЦикла;