Академический Документы
Профессиональный Документы
Культура Документы
РОССИЙСКОЙ ФЕДЕРАЦИИ
Хворенков С.Г.
Нижний Новгород
2010
Введение......................................................................................................................................................... 3
1.Работа со списками значений..................................................................................................................... 4
1.1.Техника работы со списком значений................................................................................................. 4
1.2. Выбор значения из списка................................................................................................................... 5
1.3. Метаданные и список значений. ....................................................................................................... 12
1.4. Метод НайтиПоЗначению() при работе со списками .................................................................... 13
1.5. Построение списков на основе справочника и их использование .................................................15
2. Работа с многотабличными справочниками, временем, списками значений, запросами,
построителем отчетов.................................................................................................................................. 23
2.1. Задача «Количество детей».............................................................................................................. 23
2.2. Построитель отчетов. ........................................................................................................................ 34
2.3.Работа построителя с подчиненными справочниками. ................................................................... 38
3.Тарифы........................................................................................................................................................ 39
4.Регистры Сведений.................................................................................................................................... 54
4.1. БАЗА.................................................................................................................................................... 54
4.2. Синтаксис основных методов............................................................................................................ 61
4.3. Отчет «По регистратору».................................................................................................................. 63
4.4. Непериодический регистр сведений ............................................................................................... 65
4.5. Независимый периодический регистр сведений........................................................................... 66
5. Запросы на основе документов............................................................................................................... 73
5.1. Сортировка по возрастанию (материалов)...................................................................................... 73
5.2. Сортировка по убыванию материалов............................................................................................. 74
5.3. Ключевое слово ИМЕЮЩИЕ.............................................................................................................. 74
5.4. Применение ключевого слова МЕЖДУ............................................................................................ 75
5.5. Выгрузка результата запроса в ТЗ..................................................................................................... 76
5.6. Ключевое слово «В»........................................................................................................................... 77
5.7. Задача «Проверка выполнения поставок по конкретной заявке покупателя ............................... 79
6. Регистры накопления................................................................................................................................ 91
6.1. База для исследования возможностей регистров........................................................................... 91
6.2. Регистры накопления (вид регистра «остатки»).............................................................................. 93
6.3 Решение ЗАДАЧ с помощью запросов............................................................................................... 97
6.3.1.Регистр накопления сам по себе(не остатки и не обороты). ......................................................... 97
6.3.2. Регистры накопления (остатки).................................................................................................... 103
6.3.3. Регистры накопления (обороты).................................................................................................. 110
6.3.4. Регистры накопления (обороты и остатки) .................................................................................. 113
6.4. Работа с регистрами накоплений на объектном уровне .............................................................. 120
2
6.5. Регистр накопления со ссылками................................................................................................... 128
7.Бухгалтерские запросы............................................................................................................................ 140
7.1. РЕГБУХ.............................................................................................................................................. 149
7.2. РЕГБУХСТАТКИ.................................................................................................................................. 158
7.3. РЕГБУХОБОРОТЫ.............................................................................................................................. 167
7.4. РЕГБУХСУБКОНТО............................................................................................................................. 172
7.5. РЕГБУХОБОРОТЫОСТАТКИ............................................................................................................... 174
7.6. регбухОБОРОТЫДТКТ....................................................................................................................... 178
7.7. регбухдвижениясСУбконто............................................................................................................. 181
8. Разузлование......................................................................................................................................... 184
9. Работа с закладками............................................................................................................................... 189
10. Внешняя обработка «Загрузка данных из табличного документа» (из Excel в 1С: Предприятие 8.1).
...................................................................................................................................................................... 198
Литература.................................................................................................................................................. 207
3
Введение.
В пособии рассмотрены все основные приемы программирования в среде
1С: Предприятие 8.
По каждой теме проделано большое количество примеров,
иллюстрирующих нюансы использования этих приемов в практическом
программировании. Пособие можно рассматривать как библиотеку
программных фрагментов, комбинируя которые в соответствии с логикой
конкретной задачи получим почти готовую программу.
4
1.2. Выбор значения из списка.
5
Создать отчет. В качестве исходного параметра необходимо указать
номенклатуру из справочника Номенклатура(поле владелец). По кнопке
Сформировать определить список всех материалов на заданную номенклатуру
и вывести результат в поле «спис» (СписокЗначений). Затем, по щелчку мышью
на каком-то значении из списка, скопировать это значение в поле «мат».
7
«ОтображатьПометку» и убрать галочку «ТолькоПросмотр», если необходимо
обеспечить режим множественного выбора.
Заметим, что объект типа СписокЗначений как и любой другой объект
конфигурации можно создать программно Спис= Новый СписокЗначений;
или в конфигураторе «Вставить элемент управления» на форму. Или Или.
8
В режиме 1С: Предприятие исчезнет поле для выбора в списке. Обратим
внимание, что к полю «Спис» подключена процедура, обеспечивающая
копирование выбранного мышью значения из списка. С кнопкой «Пометка»
связана процедура вывода сообщений о выбранных позициях.
9
Теперь перейдем к программированию.
Процедура «КнопкаСформироватьНажатие» привязана и к полю «Влад» и
к кнопке «сформировать». Без всякого смысла.
Итак, указали владельца и обеспечили перебор Справочники.
НормыРасхода для владельца.
Процедура КнопкаСформироватьНажатие(Кнопка)
Выборка = Справочники.НормыРасхода.Выбрать( , влад);
Пока Выборка.Следующий() Цикл
Спис.Добавить(выборка.Ссылка.Материал);
КонецЦикла;
КонецПроцедуры
Единственный оператор, обеспечивающий заполнение списка
Спис.Добавить(значение).Откуда берем значение, зависит от задачи. В
нашем случае из НормыРасхода.
Следующая процедура, обеспечивает копирование, выбранного мышью
материала в поле мат.
Процедура списВыбор(Элемент, ЭлементСписка)
мат=ЭлементСписка;
КонецПроцедуры
Следующая процедура работает только в режиме пометка. В принципе
организован цикл по перебору всех элементов списка и вывод в окно
служебных сообщений только тех значений, у которых пометка истина.
Поскольку цикл идет с 0, то кс на единицу меньше чем количество значений в
списке
спис.Количество().
Процедура пометкаНажатие(Элемент)
кс=спис.Количество()-1;
для л=0 по кс цикл
стр=спис.Получить(л);
если стр.Пометка=Истина тогда
сообщить(стр);
конецесли;
конеццикла;
КонецПроцедуры
Процедура КнопкаСформироватьНажатие(Кнопка)
// Вставить содержимое обработчика.
КонецЦикла;
выбрали=спис.ВыбратьЭлемент();
мат=выбрали.Значение;
КонецПроцедуры
По кнопке Сформировать откроется окно и пока не выберем значение
дальше не поедем.
11
Конечный результат разумеется тот же самый.
12
Процедура КнопкаСформироватьНажатие(Кнопка)
мет=метаданные.Справочники;
для каждого к из мет цикл
спис.Добавить(к);
конеццикла;
КонецПроцедуры
13
Реализация.
Процедура КнопкаСформироватьНажатие(Кнопка)
если спис.НайтиПоЗначению(товар)= неопределено тогда
ответ="нет";
иначе
ответ="да";
конецесли;
КонецПроцедуры
Процедура ПриОткрытии()
спис.Добавить("нефть");
спис.Добавить("сахар");
14
спис.Добавить("спирт");
спис.Добавить("пшено");
КонецПроцедуры
15
В разделе свойств «События» в событии «В начало выбора» определим
процедуру, которая будет создавать список только тех букв, которые есть у
заданного класса. Затем, из этого созданного списка выбираем нужный класс.
Процедура имеет имя «БукваНачалоВыбора».
16
Аналогично для «Фио». Режим «выбора групп и элементов» - элементы,
так как ФИО –это элемент.
17
Имя процедуры, прикрепленной к ФИО –«ФиоНачалоВыбора» и
она обеспечивает сначала формирование списка фамилий, для выбранных
класса и буквы, а затем и выбор из списка какой-то фамилии.
18
Теперь, собственно рассмотрим технику создания списка и выбора
из списка.
Оператор Список=… объявляет системе, что будет создаваться список с
именем «Список». Оператор «Список.Добавить(АА.Ссылка)» в цикле
формирует список из букв для заданного класса.
Оператор «Выбрали = Список.ВыбратьЭлемент(«выбирай»)»
открывает созданный список и позволяет мышью встать на нужный элемент.
Оператор «Элемент.Значение =Выбрали.Значение» копирует
выбранный элемент в поле буква. Заметим, что, так как процедура прикреплена
к полю буква, то элемент в процедуре это и есть буква.
19
Аналогично формируется другой список для выбора фамилий. Имена
списков (и там и там список) совпадают чисто случайно. Все равно они в
разных процедурах. Можно назвать по - разному.
20
21
22
2. Работа с многотабличными справочниками, временем,
списками значений, запросами, построителем отчетов.
2.1. Задача «Количество детей»
Постановка задачи.
Создать справочник Сотрудники(сотр), следующей структуры:
- наименование(ФИО);
-гр – дата рождения;
-первая табличная часть «дети» с реквизитами «имя» ребенка и «год»-
дата рождения;
- вторая табличная часть «мра» (места работ) с реквизитами «орг» -место
работы, «дн» -дата начала работы в организации и «до» - дата окончания
работы в организации.
23
Ниже приведены заполненные записи справочника Сотрудники.
24
25
26
Теперь о сути задачи. Для задаваемого в качестве параметра отчета Фио и
места работы, определить количество детей, возраст которых не превышает 18
лет на конец интервала времени, когда ФИО работал в заданной организации.
Рассмотрим результаты выполнения отчета для Иванова и
организации «кобра»
27
конецесли;
конеццикла;
для каждого а из спр.дети цикл
если ((год(кр)-год(а.год))<18)и ((год(кр)-
год(а.год))>0) тогда
сообщить(а.имя);
сообщить(а.год);
кд=кд+1;
конецесли;
конеццикла;
конецесли;
конеццикла
КонецПроцедуры
28
Процедура КнопкаСформироватьНажатие(Кнопка)
кд=0;
спр=справочники.сотр.Выбрать();
пока спр.Следующий() цикл
если спр.Ссылка=фио тогда
для каждого к из спр.мра цикл
Сп.Добавить(к.орг);
КонецЦикла;
выбрали=сп.ВыбратьЭлемент();
орган=выбрали.Значение;
для каждого к из спр.мра цикл
если к.орг=орган тогда
нр=к.дн;
кр=к.до;
сообщить(к.орг);
сообщить(нр);
сообщить(кр);
конецесли;
конеццикла;
для каждого а из спр.дети цикл
если ((год(кр)-год(а.год))<18)и ((год(кр)-
год(а.год))>0) тогда
сообщить(а.имя);
сообщить(а.год);
кд=кд+1;
29
конецесли;
конеццикла;
конецесли;
конеццикла
КонецПроцедуры
30
Результат, разумеется, аналогичен Варианту 1.
31
Процедура КнопкаСформироватьНажатие(Кнопка)
кд=0;
сп=новый СписокЗначений; // введена строка идентификации
СП
спр=справочники.сотр.Выбрать();
пока спр.Следующий() цикл
если спр.Ссылка=фио тогда
для каждого к из спр.мра цикл
Сп.Добавить(к.орг);
КонецЦикла;
выбрали=сп.ВыбратьЭлемент();
орган=выбрали.Значение;
для каждого к из спр.мра цикл
если к.орг=орган тогда
нр=к.дн;
кр=к.до;
сообщить(к.орг);
сообщить(нр);
сообщить(кр);
конецесли;
конеццикла;
для каждого а из спр.дети цикл
32
если ((год(кр)-год(а.год))<18)и ((год(кр)-
год(а.год))>0) тогда
сообщить(а.имя);
сообщить(а.год);
кд=кд+1;
конецесли;
конеццикла;
конецесли;
конеццикла
КонецПроцедуры
Вариант 5. В вариантах 2,3,4 СП заполнялся применением объектных
методов, а именно перебором табличной части мра справочника.Сотр.
Попробуем реализовать заполнение СП на основе запросов.
Процедура КнопкаСформироватьНажатие(Кнопка)
кд=0;
запрос=новый запрос(
"ВЫБРАТЬ
| сотрмра.Ссылка,
| сотрмра.орг как орг
|ИЗ
| Справочник.сотр.мра КАК сотрмра
|ГДЕ
| сотрмра.Ссылка = &фио");
запрос.УстановитьПараметр("фио",фио);
результат=запрос.Выполнить().Выбрать();
пока результат.Следующий() цикл
сп.Добавить(результат.орг);
конеццикла;
выбрали=сп.ВыбратьЭлемент();
орган=выбрали.Значение;
спр=справочники.сотр.Выбрать();
пока спр.Следующий() цикл
если спр.Ссылка=фио тогда
для каждого к из спр.мра цикл
если к.орг=орган тогда
нр=к.дн;
кр=к.до;
33
сообщить(к.орг);
сообщить(нр);
сообщить(кр);
конецесли;
конеццикла;
для каждого а из спр.дети цикл
если ((год(кр)-год(а.год))<18)и ((год(кр)-
год(а.год))>0) тогда
сообщить(а.имя);
сообщить(а.год);
кд=кд+1;
конецесли;
конеццикла;
конецесли;
конеццикла
КонецПроцедуры
Рассмотрим текст запроса, формирующий СП. Язык запросов будет
подробно рассматриваться отдельно, а пока ограничимся полуинтуитивными
соображениями. Общее замечание, опирающееся на принципы организации
базы в 1С8. Если объект (документ или справочник) имеют табличные части, то
система формирует взаимные ссылки от общей части к табличным и наоборот
от табличных частей к общей части.
Выборка рабочих мест идет ИЗ табличной части
Справочник.сотр.мра, псевдонимом которой объявлена переменная сотрмра.
Что выбираем. сотрмра.Ссылка – это ФИО.
сотрмра.орг как орг – это организация
При условии. ГДЕ
сотрмра.Ссылка = &фио
&фио – это параметр запроса. По смыслу, обеспечиваем выборку
организаций для задаваемой извне запроса ФИО. Оператор
запрос. УстановитьПараметр("фио",фио); сообщает в текст запроса
значение ФИО для которого решается задача. После выполнения запроса идет
очевидный текст по извлечению результатов запроса и заполнению СП.
34
По кнопке «Действия» войдем в построитель.
35
Открывается планшет построителя.
В колонке «Таблицы и поля» открывается перечень всех источников
информации для запросов, разумеется, объявленных в конфигураторе. В нашем
случае интересен справочник.Сотр, и более того только табличная часть мра.
36
В колонке «Условия» задаем условие выборки.
37
По кнопке в верхнем углу можно сделать его доступным для копирования
и скопированный фрагмент вставлять в свои программы.
38
3.Тарифы
Работа со списками на примере задачи «Тариф».
Тарифы перевозок.
1.Создать справочник «номпоезд». Он содержит только номера поездов.
2. Создать справочник «города». Он содержит только города.
3. Создать двухуровневый справочник «Направления». На верхнем уровне
(группе) – в качестве наименования номер поезда , который будем выбирать из
справочника «Номпоезд».На уровне элементов в качестве наименования пункты
по пути следования от первого до последнего и выбирать их будем из
справочника «города».
4.Справочнику «Направления» подчиним справочник «докуда».Обратим
внимание на то, что подчинение двойное. Это и номер поезда, и пункт откуда. В
нем в качестве наименования пункты докуда можно доехать из выбранного
владельца с указанием цены купе и цены плацкарта.
5. Создать отчет «Тариф». на форму поместить следующие поля :-номер
поезда из «номпоезд»; -откуда и куда (тип справочник города); -типвагона из
перечисления(его надо создать). Эти поля заполняем вручную. Введем поле
цена, которое будет заполняться программно.
39
Поле «Номпо» используется в группе.
40
Обратим внимание на поле «использование подчинения». В нем можно
задать три значения.
41
42
43
Обращаем внимание что процедуры «Точка отправления…» и
«точканазначения…» прикреплены к событию «начало выбора» и эти
процедуры формируют последовательно списки пунктов отправления для
выбранного поезда, а затем список только тех пунктов до которых можно
доехать из пункта отправления для заданного поезда. Тем самым не будет даже
возможности ошибиться при выборе пунктов.
Перед написанием и выполнением процедур заполним справочники.
45
Процедура топрНачалоВыбора(Элемент, СтандартнаяОбработка)
сп=новый списокзначений;
запр=новый запрос;
запр.Текст =
"ВЫБРАТЬ
| направления.пункты как пункты
|ИЗ
| Справочник.направления КАК направления
|ГДЕ
| направления.Родитель.номпо = &номпо";
запр.УстановитьПараметр("номпо",номерпоезда);
результат=запр.Выполнить().Выбрать();
пока результат.Следующий() цикл
сп.Добавить(результат.пункты);
конеццикла;
выбрали=сп.ВыбратьЭлемент();
топр=выбрали.Значение;
КонецПроцедуры
48
Заремленный ниже текст, демонстрирует ту же самую логику, что логика
запроса, но выполненную на обЪектном уровне. Попробуйте заремить
запросную часть и открепить объектную и выполнить.
//Выборка = Справочники.докуда.Выбрать();
49
Создадим с помощью построителя вспомогательный отчет для получения
цены, если заданы топр тназн.
50
Обратим внимание на «Таблицы и поля» Справочника «Докуда» в
плане их использования при формировании условий. Как видно, помимо
собственной информации этого справочника, в структуре задана информация о
владельце, а поскольку владелец двухуровневый, то приводится родитель и поля
к нему и вложенный родитель. Понимая логику задачи нужно правильно
извлекать необходимые поля.
51
Вернемся к основной задаче.
Скопируем полученный построителем текст запроса в процедуру
сформировать и дополним логикой выборки и проверки.
52
Процедура
КнопкаСформироватьНажатие(Кнопка)
// Вставить содержимое обработчика.
запр2=новый запрос;
запр2.Текст =
"ВЫБРАТЬ
| докуда.пункты,
| докуда.цк как цк,
| докуда.цп как цп
|ИЗ
| Справочник.докуда КАК докуда
|ГДЕ
| докуда.Владелец.Родитель.номпо = &номпо
| И докуда.Владелец.пункты = &топр
| И докуда.пункты = &тназн";
запр2.УстановитьПараметр("номпо",номерпоезда);
запр2.УстановитьПараметр("топр",топр);
запр2.УстановитьПараметр("тназн",тназн);
результат=запр2.Выполнить().Выбрать();
пока результат.следующий() цикл
если типваг=перечисления.тп.купе тогда
цена=результат.цк
иначе
цена=результат.цп
конецесли;
конеццикла;
КонецПроцедуры
53
4.Регистры Сведений.
4.1. БАЗА.
Введем перечисление с именем «Списание» и значениями ЛИФО и
ФИФО.
Введем перечисление с именем «Учпол» (учетная политика) и
значениями ЛИФО, ФИФО и посредней.
54
Для демонстрации различных вариантов применения регистра сведений
создадим 4 регистра, у всех из них всего один ресурс «Метод» и тип
«перечисление.списание». Сами регистры сведений отличаются режимом
применения.
55
непосредственно в ручном режиме используя форму регистра. Этот регистр
обслуживается перечислением «Списание».
56
Регистр сведений «непер» непериодический и независимый. Его можно
рассматривать как константу.
57
Аналогично, Список «Учп» и список «Непер»
58
59
В конструкторе движений создадим модуль проведения этого документа.
60
С базой покончено.
Приступаем к главной цели к отчетам, иллюстрирующим возможности
регистров сведений.
63
И по кнопке «Сформировать» применяя метод «ВыбратьПо
Регистратору» извлекаем «метод».
64
4.4. Непериодический регистр сведений
Поскольку регистр «непер» не периодический, применяем метод
«Получить», в котором не применяется дата. В этом регистре всегда одна
величина.
65
4.5. Независимый периодический регистр сведений
Существуют два, наиболее часто используемых, метода для извлечения
данных из периодического регистра сведений: - «ПолучитьПервое(дата)» и
«ПолучитьПоследнее(дата)».
66
Чтобы понять что же мы получаем, внимательно посмотрим примеры.
Оба примера выполнены для даты=04.10.2010. В регистре нет информации на
эту дату. Но есть информация на 03.10.2010 и на 07.10.2010.
Метод «Первое» выдает информацию на дату первую(ближайшую сверху
к заданной, то есть на 07. –ФИФО.
67
Метод «Последнее» выдает информацию на последнюю, ближайшую
снизу к заданной, дату, то есть на 03 –ЛИФО.
69
Создадим отчет.
70
Процедура выводит в ТЗ ближайшие снизу к указанной
дате(СрезПоследних).
71
Как видно отличие методов «ПолучитьПервое» и «СрезПервых» только в
том что во втором случае выводятся все ресурсы одновременно (та же аналогия
по последним).
Разумеется, можно и в этом случае пользоваться методами
«ПолучитьПоследнее» и «ПолучитьПервое».
Например:
72
5. Запросы на основе документов
Набор возможностей.
5.1. Сортировка по возрастанию (материалов)
73
5.2. Сортировка по убыванию материалов
74
5.4. Применение ключевого слова МЕЖДУ.
75
5.5. Выгрузка результата запроса в ТЗ
76
После выгрузки в ТЗ – работай с ТЗ. (Для каждого к из тз цикл…).
77
ИЛИ:
78
5.7. Задача «Проверка выполнения поставок по конкретной заявке
покупателя
79
Пояснения по программе. Два независимых запроса, у которых один
внешний параметр заявка покупателя «ЗП». После их выполнения двойной
цикл, сравнение материалов и выдача информации.
80
Вариант решения с использованием запросов, где в качестве одной
таблицы применяется документ «ЗПОК», а в качестве второй – регистр
накопления «ПМ»
Сначала рассмотрим одну исключительную возможность – работу с
вложенными запросами.
Суть задачи – получить информацию о суммарных заявках покупателей в
разрезе материалов.
81
Задача.
По каждой отдельной заявке получить информацию о состоянии заказа.
82
83
По всем вместе взятым заявкам получить состояние поставок.
Во внутреннем запросе просуммировали по каждому материалу по всем
заявкам.
84
Внутреннее соединение отражает только пересекающиеся позиции.
Например, в заявке есть позиция «доска» в количестве 500 штук. Поскольку
поступления доски нет, то и сообщений, то же нет.
Чтобы это увидеть, надо выполнить, в нашем случае, правое
соединение, так как ЗПОК находится справа.
ПРАВОЕ СОЕДИНЕНИЕ.
85
86
ЛЕВОЕ СОЕДИНЕНИЕ.
Если необходимо видеть все поступления, в том числе и не по заявкам.
87
88
В отчете есть «Меткаркас», которого нет в заявке, в то же время
отсутствует информация по «доске», которая есть в заявке и которой нет в
поступлении.
Наконец, если необходимо видеть обе стороны процесса, то используем
ПОЛНОЕ СОЕДИНЕНИЕ.
89
90
6. Регистры накопления
6.1. База для исследования возможностей регистров
Справочники.
91
Документы.
92
Результаты проведения по регистрам.
93
Структура регистра накопления(максимальный набор параметров)
Параметры:
<Начало интервала> (необязательный)
Тип: Дата, МоментВремени, Граница. Начало интервала, за который будут
выбираться записи регистра накопления. Может задаваться значениями типа
Дата, МоментВремени или Граница.
Если не указан, то будут выбираться записи с самого ранней включительно.
<Конец интервала> (необязательный)
Тип: Дата, МоментВремени, Граница. Конец интервала, за который будут
выбираться записи регистра накопления. Может задаваться значениями типа
94
Дата, МоментВремени или Граница.
Если не указан, то будут выбираться записи до самой поздней включительно.
<Отбор> (необязательный)
Тип: Структура. Задает поле и значение отбора открываемой выборки.
Ключ структуры описывает имя поля, а значение структуры - значение отбора
по этому полю. В качестве полей для отбора могут задаваться измерения или
реквизиты, для которых в конфигураторе признак индексирования установлен в
значение "Индексировать".
Важно! Структура может содержать только один элемент.
Если параметр не указан, то отбор не используется.
<Порядок> (необязательный)
Тип: Строка. Может содержать слово "Возр" или "Убыв", тогда
стандартный порядок будет использоваться с указанным направлением. По
умолчанию "Возр".
Может содержать имя поля (реквизита или измерения для которых указано
индексирование) и слово "Возр" или "Убыв", тогда упорядочивание будет
производится по указанному полю в указанном порядке.
Значение по умолчанию: Пустая строка
Возвращаемое значение:
Тип: РегистрНакопленияВыборка.
Описание:
Формирует выборку записей регистра накопления.
95
отбираемое по данному измерению значение.
Если параметр не указан, то отбор не используется.
<Измерения> (необязательный)
Тип: Строка. Список измерений, для которых надо получить остатки.
Строка, содержащая имена измерений, разделенные запятыми.
Если параметр не указан или указана пустая строка, то остатки будут
сформированы по всем измерениям.
<Ресурсы> (необязательный)
Тип: Строка. Список ресурсов, для которых надо получить остатки.
Строка, содержащая имена ресурсов, разделенные запятыми.
Если параметр не указан или указана пустая строка, то остатки будут
сформированы по всем ресурсам.
Значение по умолчанию: Пустая строка
Возвращаемое значение:
Тип: ТаблицаЗначений. Сформированная таблица значений.
Описание:
Получает остатки регистра накопления на заданный момент времени.
Есть возможность фильтрации по значениям измерений, а также получения
остатков в разрезе других измерений. Возвращает таблицу значений,
содержащую колонки с измерениями, указанными в параметре Измерения, и
колонки с ресурсами, указанными в параметре <Ресурсы>.
Примечание:
Имеет смысл только для регистров, у которых в конфигураторе указан вид
регистра "Остатки".
96
Если в качестве параметра передана Дата или МоментВремени, то обороты за
указанную дату (момент времени) будут включены в результирующую таблицу
значений.
<Отбор> (необязательный)
Тип: Структура. Структура, содержащая набор значений измерений
регистра, по которым надо отбирать обороты. Имя ключа структуры должно
совпадать с именем измерения регистра, заданного в конфигураторе, а значение
элемента структуры - задает отбираемое по данному измерению значение.
Если параметр не указан, то отбор не используется.
<Измерения> (необязательный)
Тип: Строка. Список измерений, для которых надо разворачивать
обороты. Строка, содержащая имена измерений, разделенные запятыми. Если
параметр не указан или указана пустая строка, то обороты будут сформированы
по всем измерениям.
Значение по умолчанию: Пустая строка
<Ресурсы> (необязательный)
Тип: Строка. Список ресурсов, для которых надо получить обороты.
Строка, содержащая имена ресурсов, разделенные запятыми.
Если параметр не указан или указана пустая строка, то обороты будут
сформированы по всем ресурсам.
Значение по умолчанию: Пустая строка
Возвращаемое значение:
Тип: ТаблицаЗначений.
Описание:
Получает обороты регистра накопления за заданный период времени.
Есть возможность фильтрации по значениям измерений. Возвращает таблицу
значений, содержащую колонки с измерениями, указанными в параметре
Измерения, и по две колонки на каждый ресурс, указанный в параметре
<Ресурсы>.
Названия колонок для ресурсов формируются следующим образом: для
регистров остатков: "<Имя ресурса>Приход" и "<Имя ресурса>Расход" .
97
| РегистрНакопления.покреал КАК покреал
| СГРУППИРОВАТЬ ПО
| покреал.овфр";
98
рез=запрос.выполнить();
выборка=рез.Выбрать();
пока Выборка.Следующий() цикл
сообщить(выборка.овфр);
сообщить(выборка.кол);
сообщить(выборка.сумма);
конеццикла;
КонецПроцедуры
99
Выборка всех полей регистра.
100
Поиск по регистратору с помощью запроса.
101
На объектном уровне эта же задача решается с помощью метода
ВыбратьПоРегистратору.
102
ВыбратьПоРегистратору(<Регистратор>)
Параметры:
<Регистратор> (обязательный)
Тип: ДокументСсылка. Ссылка на документ, являющийся регистратором
для записей регистра.
Возвращаемое значение:
Тип: РегистрНакопленияВыборка.
Описание:
Формирует выборку по регистратору записей регистра накопления.
Пример:
Движения =
РегистрыНакопления.Продажи.ВыбратьПоРегистратору(Ссылка);
103
Получены остатки, в том числе с учетом прихода и расхода.
104
Получим остатки по выбранному овфр.
105
Получим среднюю цену по овфр.
109
6.3.3. Регистры накопления (обороты)
Полный вывод.
110
Это продолжение.
Это продолжение.
111
И так далее, как и в режиме остатков. Смысл этого режима уже понятен.
112
Результат, конечно тот же самый, но показана возможность ручного
внесения в текст запроса параметров, в данном случае начало и конец периода
-ДН и ДК.
Продолжение.
113
Продолжение.
115
Движение.сумма = ТекСтрокатовар.сумма;
КонецЦикла;
Для Каждого ТекСтрокатовар Из товар Цикл
// регистр пкрл
Движение = Движения.пкрл.Добавить();
Движение.Период = Дата;
Движение.контр = поставщик;
Движение.овфр = ТекСтрокатовар.овфр;
Движение.кол = ТекСтрокатовар.кол;
Движение.сумма = ТекСтрокатовар.сумма;
КонецЦикла;
КонецПроцедуры
КонецПроцедуры
117
Полный вывод регистра «ПКРЛ» в режиме «Обороты».
118
Вывод только по овфр.
119
6.4. Работа с регистрами накоплений на объектном уровне
Полный вывод регистра накоплений «Покреал».
Процедура КнопкаСформироватьНажатие(Кнопка)
нак=регистрынакопления.покреал.Выбрать() ;
пока нак.следующий() цикл
сообщить(нак.контр);
120
сообщить(нак.овфр);
сообщить(нак.сумма);
конеццикла;
КонецПроцедуры
Процедура КнопкаСформироватьНажатие(Кнопка)
нак=регистрынакопления.покреал.Остатки(,,"овфр","кол,сумма") ;
121
элементыформы.нак.СоздатьКолонки();
для каждого тс из нак цикл
сообщить(тс.овфр);
сообщить(тс.кол);
сообщить(тс.сумма);
конеццикла;
КонецПроцедуры
Дата , на которую получаем остатки не задана и поэтому перед первой
запятой – пустота. Можно на форме задать переменную типа дата(например,
«ДП» и тогда оператор примет вид …остатки(ДП,,»овфр»…).
Напомним, что результатом обращения к регистрам накопления является
Таблица значений, в нашем случае «нак» которую поместим на форме. Далее с
ней работаем как обычно- « для каждого…».
Процедура КнопкаСформироватьНажатие(Кнопка)
нак=регистрынакопления.покреал.Остатки(,,"овфр","кол,сумма") ;
элементыформы.нак.СоздатьКолонки();
для каждого тс из нак цикл
если тс.овфр =овфр тогда
срцена=тс.сумма/тс.кол;
конецесли;
122
конеццикла;
КонецПроцедуры
Результат.
123
Выбор оборотов из регистра накопления «Покреал» (сам регистр – это
регистр остатков, но используем его в режиме оборотов.)
Процедура КнопкаСформироватьНажатие(Кнопка)
фильтр=новый структура;
фильтр.Вставить("овфр",овфр);
нак=регистрынакопления.покреал.Обороты(,,фильтр,"овфр","кол,сумма")
;
элементыформы.нак.СоздатьКолонки();
КонецПроцедуры
124
Выбор оборотов из регистра накопления «Пкрл» (сам регистр – это регистр
оборотов, и используем его в режиме оборотов.)
процедура КнопкаСформироватьНажатие(Кнопка)
фильтр=новый структура;
фильтр.Вставить("овфр",овфр);
нак=регистрынакопления.пкрл.Обороты(,,фильтр,"овфр","кол,сумма") ;
элементыформы.нак.СоздатьКолонки();
КонецПроцедуры
Процедура КнопкаСформироватьНажатие(Кнопка)
запрос =новый запрос;
запрос.Текст =
"ВЫБРАТЬ
125
| покреал.контр,
| покреал.овфр,
| покреал.кол КАК кол,
| покреал.сумма КАК сумма
|ИЗ
| РегистрНакопления.покреал КАК покреал
|ИТОГИ
| СУММА(кол),
| СУММА(сумма)
|ПО
| ОБЩИЕ,
| контр,
| овфр";
рез=запрос.Выполнить();
выборка1=рез.Выбрать(Обходрезультатазапроса.ПоГруппировкам);
пока выборка1.Следующий() цикл
сообщить(выборка1.контр);
выборка2=выборка1.Выбрать();
пока выборка2.Следующий() цикл
сообщить(выборка2.овфр);
сообщить(выборка2.кол);
сообщить(выборка2.сумма);
конеццикла;
конеццикла
КонецПроцедуры
126
127
6.5. Регистр накопления со ссылками
База.
128
Регистр «ПМ» обслуживает документ «ПМ».
129
Документы «ЗПОК», варианты их заполнения и проведения.
130
Документы «ПМ», варианты из заполнения и проведения.
131
132
133
Собственно, в чем заключается задача.
Для задаваемого документа «Заяпок» проверить состояние исполнения
заявки. Для этого необходимо совместно обработать два регистра.
Текст запроса, написанный вручную.
134
Результат работы запроса для «Зпок2»
135
Результат работы запроса для «Зпок1»
136
Эта же задача с помощью построителя.
Поля.
137
Связи.
Условия.
Текст запроса.
Результат запроса
138
По существу задачи. Извлечена информация из двух источников
– сколько надо по заявке и сколько поступило на момент запроса. Делай
выводы.
Та же задаче, но по всем заявкам покупателей.
139
7.Бухгалтерские запросы
Регистр бухгалтерии - сложный объект, Представленный в модели
данных рядом таблиц. Все таблицы можно разделить на две группы: реальные и
виртуальные. Реальные таблицы предоставляют доступ к физически
существующим таблицам. У регистра бухгалтерии таких таблиц две: основная
таблица и таблица субконто. Реальные таблицы малопригодны для
формирования бухгалтерских отчетов и являются вспомогательным
механизмом. В большинстве случаев используются виртуальные таблицы. Эти
таблицы не хранятся в базе , а формируются при обращении к ним.
Виртуальные таблицы узкоспециализированы и предназначены для решения
конкретных задач.
140
Таблица остатков предназначена для получения остатков по счетам в разрезе
субконто. Обращение к ней «РегистрБухгалтерии.РЕГБУХ.ОСТАТКИ». После
имени таблицы в круглых скобках возможны параметры, задающие условия
отбора из физических таблиц. Параметры: Период, Счет, субконто, условие.
Таблица оборотов используется для получения оборотов по счету и оборотов по
счету в разрезе субконто. Обращение к ней –
«регистрбухалтерии.ребух.Обороты». После имени таблицы в круглых скобках
возможны параметры. Параметры: дата начальная, дата конечная,
периодичность, счет, субконто, условие, корсчет, корсубконто.
Таблица остатков и оборотов предназначена для формирования оборотно
сальдовых ведомостей, где в каждой строке надо показать остатки на начало
периода, обороты за период и остатки на конец периода. Обращение к ней –
«регистрбухгалтерии.регбух.ОстаткиИОбороты». Параметры таблицы:
начпериода, конпериода, периодичность, счет,субконто.
Таблица Движений С Субконто используется для отбора проводок.
Таблица оборотов ДТ КТ предназначена для получения оборотов между
корреспондирующими счетами. Параметры таблицы: начпериода, конпериода,
периодичность , условие счета ДТ, субконто ДТ, условие счетаКТ, субконто КТ
Задача. РУДЫ.
Наша задача, через примеры почувствовать смысл и технику работы
с разными таблицами.
БАЗА.
Создадим три справочника: Руды, контрагенты, склады.
Создадим два документа: - ПР - поступление руды и ОР - отгрузка руды.
141
Создадим план счетов и всю сопутствующую
информацию.
142
143
144
Создадим движения по документу ПР.
145
Заполним базу.
146
147
148
Содержимое РЕГБУХ.
7.1. РЕГБУХ
Отчет1. РЕГБУХ – вывод регистра регбух.
Некоторые замечания.
Свойство «активность». Свойство «активность» - свойство записи регистра,
влияющее на отражении этой записи в таблицах итогов. Активные записи
попадают в итоги. Проводка с выключенной активностью не удаляется из базы.
Активность –булева переменная(истина или ложь). ЕЕ можно программно
включать или выключать.
149
Оперативное и неоперативное проведение. Установленное свойство
«Оперативное проведение позволяет контролировать ввод документов задним
числом и запрещает проведение будущей датой.
150
На объектном уровне.
151
В условии «если» в явном виде указан счет «41.1» и поэтому
применено приведение к строке рб.счет.
152
Второй вариант этой же программы.
Отличие единственное. В условии применено не значение счета «41.1» , а
имя счета как оно указано в плане счетов. Это позволяет не менять программу,
если изменим счет с неизменным именем.
153
Отчет3. Регбух с условием по счету кредита и по регистратору.
154
Отчет 4. РЕГБУХ с группировкой и по условию.
155
Результаты запроса наполовину бессмысленны, так как на какую
сумму отгрузили, имеет смысл, а какое количество неизвестно чего не имеет
смысла.
156
Отчет 5. РЕГБУХ с группировкой, с условием и с итогами.
157
Как видно, работая с регбух (режим основная таблица) нет никаких
субконто – никакой аналитики.
7.2. РЕГБУХСТАТКИ
158
Это продолжение результата.
159
Обсудим полученный результат. На первый взгляд, он выглядит
нелепо. Какие-то минусы появились, но все объяснимо. Вспомним содержимое
РЕГБУХ и ситуацию, приведшею к нему. Документ ПР обеспечивал фиксацию
поступления и по руде и по складу. Документ ОР формировал проводки только
по руде с неопределенного, то есть с отсутствующего склада. Это недопустимо.
Как быть? Либо в документе ОР указывать склад, либо писать свою логику
проведения документа ОР, в которой в этой ситуации списываем руду сначала с
первого склада, затем со второго, пока не выполним заявку на отгрузку. То
есть, необходим партионный учет.
160
Вид программы.
162
Еще вариант.
163
Вариант с фильтром (отбором)
164
Отбор с фильтром по субконто1, но в результат выводятся все
субконто, так как в параметрах не ограничены списком измерения.
165
Тот же результат, но другая техника работы с ТЗ.
166
7.3. РЕГБУХОБОРОТЫ
Синтаксис.
РегистрБухгалтерииМенеджер.<Имя регистра бухгалтерии> Обороты
Синтаксис:
167
Обороты(<Начало периода>, <Конец периода>, <Виды субконто>, <Виды
кор. субконто>, <Отбор>, <Измерения>, <Ресурсы>)
Параметры:
<Начало периода> (необязательный)
Тип: Дата, МоментВремени, Граница. Момент времени, начиная с
которого необходимо получить обороты. Если параметр не указан, то обороты
будут получены начиная с момента ведения базы данных. Если в качестве
параметра передана Дата или МоментВремени, то обороты за указанную дату
(момент времени) будут включены в результирующую таблицу значений.
<Конец периода> (необязательный)
Тип: Дата, МоментВремени, Граница. Момент времени, определяющий
конец периода за который необходимо получить обороты. Если параметр не
указан, то обороты будут получены до самого позднего движения регистра.
Если в качестве параметра передана Дата или МоментВремени, то обороты за
указанную дату (момент времени) будут включены в результирующую таблицу
значений.
<Виды субконто> (необязательный)
Тип: ПланВидовХарактеристикСсылка.<Имя плана видов
характеристик>, Массив. Передается ссылка или массив ссылок на виды
субконто. Виды субконто определяют, какие значения субконто будут доступны
по именам "Субконто1", "Субконто2" и т.д. Кроме того, обороты будут
посчитаны только по счетам, имеющим заданные виды субконто. Если виды
субконто не заданы, то обращение к значениям субконто осуществляется по
порядку (индексу), как они определены на соответствующем счете.
<Виды кор. субконто> (необязательный)
Тип: ПланВидовХарактеристикСсылка.<Имя плана видов
характеристик>, Массив. Передается ссылка или массив ссылок на виды
субконто. Виды кор. субконто определяют, какие значения корреспондирующих
субконто будут доступны по именам "КорСубконто1", "КорСубконто2" и т.д.
Кроме того, обороты будут посчитаны только по кор. счетам, имеющим
заданные виды кор. субконто. Если виды кор. субконто не заданы, то обращение
к значениям кор. субконто осуществляется по порядку (индексу), как они
определены на соответствующем счете.
Важно! Имеет смысл только для регистра бухгалтерии с поддержкой
корреспонденцией. Для регистра без корреспонденции параметр не существует!
<Отбор> (необязательный)
Тип: Структура. Структура, содержащая набор значений измерений
регистра, по которым надо отбирать итоги. Допустимые значения ключа: Счет,
Субконто<Номер>, <Имя измерения>, КорСчет, КорСубконто<Номер>, <Имя
измерения>Кор (только для не балансовых измерений).
Если параметр не указан, то отбор не используется.
<Измерения> (необязательный)
168
Тип: Строка. Список измерений, для которых надо получить обороты.
Строка, содержащая имена измерений, разделенных запятыми. Допустимые
имена измерений: Счет, Субконто<Номер>, <Имя измерения>, КорСчет,
КорСубконто<Номер>, <Имя измерения>Кор.
Если параметр не указан или указана пустая строка, то обороты будут
сформированы по всем измерениям.
Значение по умолчанию: Пустая строка
<Ресурсы> (необязательный)
Тип: Строка. Список ресурсов, для которых надо получить обороты.
Строка, содержащая имена ресурсов, разделенных запятыми.
Если параметр не указан или указана пустая строка, то обороты будут
сформированы по всем ресурсам.
Значение по умолчанию: Пустая строка
Возвращаемое значение:
Тип: ТаблицаЗначений.
Описание:
Получает обороты по регистру бухгалтерии на заданный момент.
Обороты получаются в разрезе заданных измерений и по заданным ресурсам. В
измерения входят счет, субконто, измерения, кор. счет, кор. субконто, кор.
Измерения
169
На уровне запросов.
170
На объектном уровне с условиями (Склад, руда ).
171
7.4. РЕГБУХСУБКОНТО
Без условий.
172
С условием.
173
7.5. РЕГБУХОБОРОТЫОСТАТКИ.
Без условий.
Продолжение .
174
Продолжение.
175
С условием.
176
177
7.6. регбухОБОРОТЫДТКТ
РегистрБухгалтерииМенеджер.<Имя регистра бухгалтерии>
ОборотыДтКт
Синтаксис:
ОборотыДтКт(<Начало периода>, <Конец периода>, <Виды субконто
Дт>, <Виды субконто Кт>, <Отбор>, <Измерения>, <Ресурсы>)
Параметры:
<Начало периода> (необязательный)
Тип: Дата, МоментВремени, Граница. Момент времени, начиная с
которого необходимо получить обороты. Если параметр не указан, то обороты
будут получены начиная с момента ведения базы данных. Если в качестве
параметра передана Дата или МоментВремени, то обороты за указанную дату
(момент времени) будут включены в результирующую таблицу значений.
<Конец периода> (необязательный)
Тип: Дата, МоментВремени, Граница. Момент времени, определяющий
конец периода за который необходимо получить обороты. Если параметр не
указан, то обороты будут получены до самого позднего движения регистра.
Если в качестве параметра передана Дата или МоментВремени, то обороты за
указанную дату (момент времени) будут включены в результирующую таблицу
значений.
<Виды субконто Дт> (необязательный)
Тип: ПланВидовХарактеристикСсылка.<Имя плана видов
характеристик>, Массив. Передается ссылка или массив ссылок на виды
субконто. Параметр определяет, какие значения субконто дебета будут
доступны по именам "СубконтоДт1", "СубконтоДт2" и т.д. Кроме того, обороты
будут посчитаны только по счетам дебета, имеющим заданные виды субконто
дебета. Если параметр не задан, то обращение к значениям субконто дебета
осуществляется по порядку (индексу), как они определены на соответствующем
счете.
<Виды субконто Кт> (необязательный)
Тип: ПланВидовХарактеристикСсылка.<Имя плана видов
характеристик>, Массив. Передается ссылка или массив ссылок на виды
субконто. Виды субконто определяют, какие значения субконто кредита будут
178
доступны по именам "СубконтоКт1", "СубконтоКт2" и т.д. Кроме того, обороты
будут посчитаны только по счетам кредита, имеющим заданные виды субконто
кредита. Если виды субконто кредита не заданы, то обращение к значениям
субконто кредита осуществляется по порядку, как они определены на
соответствующем счете.
<Отбор> (необязательный)
Тип: Структура. Структура, содержащая набор значений измерений
регистра, по которым надо отбирать итоги. Допустимые значения ключа:
СчетДт, СубконтоДт<Номер>, СчетКт, СубконтоКт<Номер>, <Имя измерения>
или <Имя измерения>Дт и <Имя измерения>Кт.
Если параметр не указан, то отбор не используется.
<Измерения> (необязательный)
Тип: Строка. Список измерений, для которых надо получить обороты.
Строка, содержащая имена измерений, разделенных запятыми. Допустимые
имена измерений: СчетДт, СубконтоДт<Номер>, СчетКт, СубконтоКт<Номер>,
<Имя измерения> или <Имя измерения>Дт и <Имя измерения>Кт.
Если параметр не указан или указана пустая строка, то обороты будут
сформированы по всем измерениям.
Значение по умолчанию: Пустая строка
<Ресурсы> (необязательный)
Тип: Строка. Список ресурсов, для которых надо получить обороты.
Строка, содержащая имена ресурсов, разделенных запятыми.
Если параметр не указан или указана пустая строка, то обороты будут
сформированы по всем ресурсам.
Значение по умолчанию: Пустая строка
Возвращаемое значение:
Тип: ТаблицаЗначений.
Описание:
Получает обороты по регистру бухгалтерии на заданный момент.
Обороты получаются в разрезе заданных измерений и по заданным ресурсам. В
измерения входят счет дебета, субконто дебета, счет кредита, субконто кредита,
измерения кредита, измерения (для балансовых) и измерения дебета, измерения
кредита (для не балансовых).
Без условий.
179
Продолжение.
С условиями.
180
7.7. регбухдвижениясСУбконто
Без условий.
181
С условиями.
182
Все вышеприведенное – это демонстрация работы с
бухгалтерскими регистрами на уровне запросов. Напомним, что на уровне
запросов можно только извлекать информацию и ничего нельзя положить в
регистры. Поэтому не надо забывать и возможность работы на объектном
уровне, где любые объекты конфигурации рассматриваются как массивы и, в
183
зависимости от ситуации, пользуемся конструкциями вида «для каждого из…»
или «пока Следующий».
8. Разузлование
Эта задача лежит в основе любого производственного процесса и, в
частности в основе конфигурации «УПП».
Ниже приводятся два варианта решения этой задачи с рекурсией и
без применения рекурсии. Базой для задачи являются два справочника: ГП –
главный предметный, содержащий все о предметах(материалах,
полуфабрикатах, сырье, сборочных единицах , конечной продукции и т.п.) с их
индивидуальными характеристиками вне связи с деревом разузлования;
СИ – состав изделий, в котором каждый элемент содержит связку
сборочная единица – компонент и информацию, характеризующую эту связь.
184
185
186
Вариант без рекурсии (на три уровня).
187
Вариант с рекурсией (на любое количество уровней)
188
Результат, разумеется такой же.
9. Работа с закладками
База.
Создадим двухуровневый справочник «Товары».
189
Подходим к проблеме. Как видно , на форме документа размещены две
разнородных табличных части. Это отвлекает внимание и при большом
количестве табличных частей просто неудобно работать. В системе существует
специальный механизм «Закладки», позволяющий работать всегда только с
одной табличной частью и видеть всегда только одну табличную часть -
закладку. Как это делается.
190
Разместим на форме документа «Панель» с любым именем (по
умолчанию – Панель1).
191
Активизируем «Страницу1» и скопируем табличную часть «Товары».
192
Аналогично, проделаем со страницей 2.
193
При смене страниц, можно выполнять какие-то связанные с конкретной
страницей действия. Для иллюстрации этой возможности, разместим на форме
документа две кнопки. При переключении страниц будем управлять
видимостью этих кнопок.
194
Пояснения к тексту процедуры.
Все страницы панели нумеруются, начиная с нуля. Существуем метод
«Индекс», который получает индекс (номер) страницы. Внутри условия,
применен метод «Видимость».
195
При выборе страницы «Тов» - имеем вид формы.
196
Результат проведения по регистру «Товары»
197
В завершение, обратим внимание на то что можно создавать только одну
командную панель вне страниц, но указать в свойствах командной панели в
качестве источника действий «все источники»
Загрузка обработки
Откроем эту обработку. В появившемся окне, выберем вкладу «Формы» и
в поле «Основная форма обработки» поставим «Форма».
199
Выбор формы обработки
Далее создадим справочник «Материалы», который будет содержать
информацию о марке и сорте материала.
Создание справочника
В Excel’e создадим прототип этого справочника. Для удобства назовём его
так же «Материалы.xls» .
200
Создание справочника в Excel
Перейдём в 1С «Предприятие». Идём по маршруту: Меню->Операции-
>Обработка…->Загрузка данных из табличного документа. В появившемся окне
в поле «Режим загрузки» поставим «Загрузка в справочник», в поле «Вид
справочника» выберем тот, в который хотим выгрузить данные из табличного
документа.
201
Выбор загружаемого документа
В результате на экране видим следующее:
202
Настройка загрузки
Вернёмся снова на вкладку «Табличный документ». Для того чтобы
удостоверится, что никаких ошибок при выгрузке и настройке не произошло,
нажмём на кнопку .. Если всё хорошо, должно появиться
сообщение следующего содержания:
Контроль заполнения
Для загрузки справочника всё готово. Жмём кнопку «Загрузить». В
результате открыв справочник «Материалы» в 1С видим:
203
Документ «План потребности»
Аналогично создадим документ в Excel’e «План потребности.xls».
205
Настройка загрузки
Теперь можно произвести контроль заполнения. Возвращаемся на вкладку
«Табличный документ» и жмём на кнопку .
206
Литература
207