Как при печати выводить шапку на каждой странице (ПовторятьПриПечатиСтроки)? Необходимо при печати, если происходит переход на следующую страницу таблицы, выводить шапку таблицы вверху на новой странице.
для печати шапки на каждой странице в языке программирования есть специальный метод - ПовторятьПриПечатиСтроки
Примеры его использования:
Код 1C v 8.х ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область(1, , 2, );
ЭлементыФормы.Поле_ТД.ПовторятьПриПечатиСтроки = Макет.Область("Шапка_Спецификации"); //или так
ЭлементыФормы.Поле_ТД.ПовторятьПриПечатиСтроки = Макет.Область("R777:R778");
Полный код вывода табличного документа с повторением шапки на каждой странице:
Код 1C v 8.х Функция ПечатьПриказаТ11а()
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПечатнаяФорма_МатериальнаяПомощь_Т11а";
ТабДокумент.ПовторятьПриПечатиСтроки = ТабДокумент.Область("R21:R22");
Макет = ПолучитьМакет("Т11а");
ОбластьМакетаШапкаДокумента = Макет.ПолучитьОбласть("Шапка");
ОбластьПовторятьПриПечати = Макет.ПолучитьОбласть("ПовторятьПриПечати");
ОбластьМакетаСтрока = Макет.ПолучитьОбласть("Строка");
ОбластьМакетаПодвал = Макет.ПолучитьОбласть("Подвал");
ВыборкаДляШапкиДокумента = СформироватьЗапросДляШапкиДокумента().Выбрать();
ВыборкаРаботники = СформироватьЗапросДляТабличнойЧасти(1).Выбрать(); // ТЧ "Начисления"
Если ВыборкаРаботники.Количество() = 0 Тогда
ВыборкаРаботники = СформироватьЗапросДляТабличнойЧасти(2).Выбрать(); // ТЧ "Доп.Начисления"
КонецЕсли;
// Массив с двумя строками - для разбиения на страницы
ВыводимыеОбласти = Новый Массив();
ВыводимыеОбласти.Добавить(ОбластьМакетаСтрока);
// Вывод шапки документа
Пока ВыборкаДляШапкиДокумента.Следующий() Цикл
ОбластьМакетаШапкаДокумента.Параметры.Заполнить(ВыборкаДляШапкиДокумента);
ОбластьМакетаШапкаДокумента.Параметры.НазваниеОрганизации = СокрЛП(ОбластьМакетаШапкаДокумента.Параметры.НазваниеОрганизации);
КонецЦикла;
ТабДокумент.Вывести(ОбластьМакетаШапкаДокумента);
ном=0;
Пока ВыборкаРаботники.Следующий() Цикл
ОбластьМакетаСтрока.Параметры.Заполнить(ВыборкаРаботники);
ном=ном+1;
ОбластьМакетаСтрока.Параметры.ПодразделениеОрганизации = ВыборкаРаботники.ПодразделениеОрганизации.ПолноеНаименование();
ОбластьМакетаСтрока.Параметры.ном=ном;
ТабДокумент.Вывести(ОбластьМакетаСтрока);
КонецЦикла;
ОбластьМакетаПодвал.Параметры.Заполнить(ВыборкаДляШапкиДокумента); // Из запроса шапка документа.
ТабДокумент.Вывести(ОбластьМакетаПодвал);
Если ТабДокумент.ВысотаТаблицы > 0 Тогда
Возврат УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, 1, Ложь, ОбщегоНазначения.СформироватьЗаголовокДокумента(СсылкаНаОбъект,"Приказ о поощрении работника "));
КонецЕсли;
//Возврат ТабДокумент;
КонецФункции
Категория:
Табличный документ Как установить курсор на необходимой строке списка регистра сведений Код 1C v 8.х Отбор = Новый Структура;
Отбор.Вставить("Подразделение", ВыбПодразделение);
Отбор.Вставить("Должность", ВыбДолжность);
Рег = РегистрыСведений.СведенияОШтатныхЕдиницах;
КлючЗаписи = Рег.СоздатьКлючЗаписи(Отбор);
// ШтатныеЕдиницы - табличное поле для отображения списка
// записей регистра сведений
ЭлементыФормы.ШтатныеЕдиницы.ТекущаяСтрока = КлючЗаписи;
Код 1C v 8.х // Процедура Установить Строку предназначена для позиционирования строки штатного расписания
Процедура УстановитьСтроку(ПарамОрганизация, ПарамПодразделение, ПарамДолжность) Экспорт
Организация = ПарамОрганизация;
ЭлементыФормы.Подразделения.ТекущаяСтрока = ПарамПодразделение;
// установить должность в списке ШтатныеЕдиницы
Запрос = Новый Запрос(
"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации,
| ШтатноеРасписаниеОрганизаций.Должность,
| ШтатноеРасписаниеОрганизаций.Период КАК Период
|ИЗ
| РегистрСведений.ШтатноеРасписаниеОрганизаций КАК ШтатноеРасписаниеОрганизаций
|ГДЕ
| ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации = &ПодразделениеОрганизации
| И ШтатноеРасписаниеОрганизаций.Должность = &Должность
|
|УПОРЯДОЧИТЬ ПО
| Период УБЫВ");
Запрос.УстановитьПараметр("ПодразделениеОрганизации", ПарамПодразделение);
Запрос.УстановитьПараметр("Должность", ПарамДолжность);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Количество() = 1 Тогда
Выборка.Следующий();
ЗначениеКлюча = Новый Структура("ПодразделениеОрганизации, Должность, Период", Выборка.ПодразделениеОрганизации, Выборка.Должность, Выборка.Период);
ЭлементыФормы.ШтатныеЕдиницы.ТекущаяСтрока = РегистрыСведений.ШтатноеРасписаниеОрганизаций.СоздатьКлючЗаписи(ЗначениеКлюча);
КонецЕсли;
КонецПроцедуры
Категория:
Регистры сведений Как отчет на СКД сохранить в таблицу значений, а потом выгрузить в файл? Допустим у нас есть отчет с ОсновнойСхемойКомпановкиДанных,
Создадим ФормуОтчета:
На форму добавим Кнопку Выгрузка( Процедура ДействияФормыВыгрузка(Кнопка) ) и Выбор Периода формирования отчета
ВНИМАНИЕ!!!
Ошибка генерации макета
по причине: Не поддерживается вывод таблиц, диаграмм и вложенных отчетов в универсальную коллекцию значений
Выводить можно только Группировки:
Код отчета будет следующий:
Код 1C v 8.х Процедура ДействияФормыВыгрузка(Кнопка)
//Выберем файл для сохранения выгрузки
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
Диалог.Заголовок = "Выберите файл для сохранения данных";
Диалог.ПолноеИмяФайла = "NDFL_"+Формат(НачПериода,"ДФ=MM_yyyy");
Диалог.Фильтр = "TXT (*.txt)|*.txt";
Диалог.МножественныйВыбор = Ложь; Диалог.Каталог = "D:\";
Если Диалог.Выбрать() Тогда
ФайлСохранения = Диалог.ПолноеИмяФайла;
//Выгрузим результат отчета СКД в Таблицу Значений
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ДанныеТЗ = Новый ТаблицаЗначений;
ПроцессорВывода.УстановитьОбъект(ДанныеТЗ);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
//Выгрузим данные из Таблицы значений в Файл, запись данных в файл построчно
Текст = Новый ЗаписьТекста(ФайлСохранения, КодировкаТекста.ANSI);
Текст.ЗаписатьСтроку("Организация~КПП~Начислено13~Начислено30");
Для Каждого стр из ДанныеТЗ Цикл
Текст.ЗаписатьСтроку(СокрЛП(Строка(стр.Организация))+"~"+СокрЛП(стр.ПодразделениеОрганизацииКПП)+"~"+Формат(стр.Начислено13,"ЧГ=0")+"~"+Формат(стр.Начислено30,"ЧГ=0"));
КонецЦикла;
Текст.Закрыть();
КонецЕсли;
КонецПроцедуры
Процедура ВыбПериодНажатие(Элемент)
НастройкаПериода = Новый НастройкаПериода;
НастройкаПериода.УстановитьПериод(НачПериода, ?(КонПериода='0001-01-01', КонПериода, КонецДня(КонПериода)));
НастройкаПериода.РедактироватьКакИнтервал = Истина;
НастройкаПериода.РедактироватьКакПериод = Истина;
НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
Если НастройкаПериода.Редактировать() Тогда
НачПериода = НастройкаПериода.ПолучитьДатуНачала();
КонПериода = НастройкаПериода.ПолучитьДатуОкончания();
КонецЕсли;
// установить парметры периода для отчета СКД
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[4].Значение = НачПериода;
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[5].Значение = КонПериода;
КонецПроцедуры
Смотрите так же:
Вывод отчета СКД в коллекцию значений - Дерево Значений Категория:
Схема Компоновки Данных Создание XML файла выгрузки Работников организации с Группировкой по Подразделению Нужен XML файл выгрузки данных вида(выделю как код 8-рки, т.к. выделение xlm кода нет):
Код 1C v 8.х <?xml version="1.0" encoding="UTF-8"?>
<orgstructure>
<department dep_id="7ebb913c-e9c6-11dc-a4f2-0017311416a1" dep_name="генеральный директор" dep_code="П100">
<orgposition user_id="ba68bb79-c377-11dc-a4ca-0017311416a1" user_position_id="ba68bb78-c377-11dc-a4ca-0017311416a1" user_position="генеральный директор" user_is_active="1"/>
</department>
<department dep_id="8132fe4a-0789-11dd-887b-001d60f0496c" dep_name="Бухгалтерия" dep_code="П200">
<orgposition user_id="21448456-15b0-11dd-80a1-00145e3710ab" user_position_id="3c948267-df80-11dc-a4e8-0017311416a1" user_position="специалист" user_is_active="0"/>
<orgposition user_id="d299614a-df9d-11dc-a4e8-0017311416a1" user_position_id="53082fda-edf4-11dd-af3e-00145e3710ab" user_position="заместитель главного бухгалтера" user_is_active="1"/>
<orgposition user_id="8132fe6c-0789-11dd-887b-001d60f0496c" user_position_id="d299614d-df9d-11dc-a4e8-0017311416a1" user_position="секретарь" user_is_active="1"/>
<orgposition user_id="2e81c20e-f190-11dc-a4fb-0017311416a1" user_position_id="2e81c20d-f190-11dc-a4fb-0017311416a1" user_position="бухгалтер" user_is_active="0"/>
<orgposition user_id="ba68bb7e-c377-11dc-a4ca-0017311416a1" user_position_id="53082fd9-edf4-11dd-af3e-00145e3710ab" user_position="главный бухгалтер" user_is_active="1"/>
<orgposition user_id="9893f85a-0403-11df-a872-00215aa545b4" user_position_id="53073825-e5e6-11dc-a4ef-0017311416a1" user_position="делопроизводитель" user_is_active="1"/>
</department>
<department dep_id="6bb91f72-e077-11dd-bf56-00145e3710ab" dep_name="Отдел Продаж" dep_code="П300">
<department dep_id="6bb91f73-e077-11dd-bf56-00145e3710ab" dep_name="Клиентский сервис" dep_code="П310">
<orgposition user_id="02ad5122-e231-11dd-bf56-00145e3710ab" user_position_id="6bb91f6c-e077-11dd-bf56-00145e3710ab" user_position="Специалист" user_is_active="1"/>
</department>
<department dep_id="6bb91f74-e077-11dd-bf56-00145e3710ab" dep_name="Менеджеры" dep_code="П320">
<orgposition user_id="02584921-с235-11dd-bf56-00145e3710ab" user_position_id="7bb98f6c-e577-11dd-bf56-00145e3710ab" user_position="Менеджер" user_is_active="1"/>
</department>
</department>
</orgstructure>
Вот код:
Код 1C v 8.х Процедура ОбойтиУровеньДерева(Строки, Запись)
Для каждого Строка из Строки Цикл
Если ПустаяСтрока(Строка(Строка.Сотрудник)) Тогда
Запись.ЗаписатьНачалоЭлемента("department");
Запись.ЗаписатьАтрибут("dep_id", Строка(Строка.ПодразделениеОрганизации.УникальныйИдентификатор()));
Запись.ЗаписатьАтрибут("dep_name", Строка(Строка.ПодразделениеОрганизации));
Запись.ЗаписатьАтрибут("dep_code", СокрЛП(Строка(Строка.ПодразделениеОрганизации.Код)));
ОбойтиУровеньДерева(Строка.Строки, Запись);
Запись.ЗаписатьКонецЭлемента();
Иначе
Запись.ЗаписатьНачалоЭлемента("orgposition");
Запись.ЗаписатьАтрибут("user_id", Строка(Строка.Сотрудник.УникальныйИдентификатор()));
Запись.ЗаписатьАтрибут("user_position_id", Строка(Строка.Должность.УникальныйИдентификатор()));
Запись.ЗаписатьАтрибут("user_position", Строка(Строка.Должность));
Запись.ЗаписатьАтрибут("user_is_active", ?(Строка.ПричинаИзмененияСостояния = Перечисления.ПричиныИзмененияСостояния.Увольнение,"0","1"));
ОбойтиУровеньДерева(Строка.Строки, Запись);
Запись.ЗаписатьКонецЭлемента();
КонецЕсли
КонецЦикла;
КонецПроцедуры
Процедура КнопкаВыгрузитьНажатие(Кнопка)
ПутьКФайлу = "D:\Vigruzka_"+Формат(ТекущаяДата(),"ДФ=YYYYMMdd")+".xml";
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл(ПутьКФайлу, "UTF-8");
Запись.ЗаписатьОбъявлениеXML(); //<?xml version="1.0" encoding="UTF-8"?>
Запись.ЗаписатьНачалоЭлемента("orgstructure");
Запрос = Новый Запрос;
Запрос.Текст="
|ВЫБРАТЬ
| РаботникиОрганизацийСрезПоследних.Сотрудник,
| РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
| РаботникиОрганизацийСрезПоследних.Должность,
| РаботникиОрганизацийСрезПоследних.Период,
| РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Порядок КАК ПодразделениеОрганизацииПорядок,
| РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния
|ИЗ
| РегистрСведений.РаботникиОрганизаций.СрезПоследних(&dateper, ) КАК РаботникиОрганизацийСрезПоследних
|
|УПОРЯДОЧИТЬ ПО
| ПодразделениеОрганизацииПорядок
|ИТОГИ ПО
| ПодразделениеОрганизации ИЕРАРХИЯ
|АВТОУПОРЯДОЧИВАНИЕ
|";
Запрос.УстановитьПараметр("dateper", ТекущаяДата());
Результат = Запрос.Выполнить();
Дерево = Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
ОбойтиУровеньДерева(Дерево.Строки, Запись);
Запись.ЗаписатьКонецЭлемента();
Запись.Закрыть();
КонецПроцедуры
Категория:
JSON, XML, TXT, CSV, DBF Как в ЗУПе выбрать всех сотрудников, когда-либо работавших в выбранном подразделении? Как в ЗУПе выбрать всех сотрудников, когда-либо работавших в выбранном подразделении и изменить у них значение указанного реквизита.
Код 1C v 8.х Запрос=Новый Запрос;
Запрос.Текст="
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| РаботникиОрганизаций.Сотрудник,
| РаботникиОрганизаций.Сотрудник.Физлицо КАК Физлицо,
| РаботникиОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
| РаботникиОрганизаций.Период
|ИЗ
| РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
|ГДЕ
| РаботникиОрганизаций.Сотрудник.Физлицо В
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| РаботникиОрганизаций.Сотрудник.Физлицо
| ИЗ
| РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
| ГДЕ
| РаботникиОрганизаций.ПодразделениеОрганизации В ИЕРАРХИИ (&ПодразделениеОрганизации))
| И РаботникиОрганизаций.ЗанимаемыхСтавок > 0
| И РаботникиОрганизаций.ПодразделениеОрганизации В ИЕРАРХИИ(&ПодразделениеОрганизации)
|
|УПОРЯДОЧИТЬ ПО
| Физлицо
|АВТОУПОРЯДОЧИВАНИЕ
|";
Запрос.УстановитьПараметр("ПодразделениеОрганизации",Справочники.ПодразделенияОрганизаций.НайтиПоНаименованию("Дирекция");
Результат = Запрос.Выполнить();
Результат = Результат.Выбрать();
н=0;
Пока Результат.Следующий() Цикл
//Получим элемент справочника для изменения
ОбъектСотр=Результат.Сотрудник.ПолучитьОбъект();
//Изменим реквизит
ОбъектСотр.КлассПринадлежности = Перечисления.КлассСотрудников.АппаратУправления;
//Запишем результат
ОбъектСотр.Записать();
//Выведем сообщение для пользователя о том, что обработали
н=н+1;
Сообщить(строка(н)+" "+Строка(ОбъектСотр));
КонецЦикла;
Категория:
1С Зарплата и Управление Персоналом 2.5 Как получить последнее значение регистра сведений? Получение значения ресурсов наиболее поздней записи регистра сведений, соответствующей указанным периоду и значениям измерений регистра.
Код 1C v 8.х Доллары = Справочники.Валюты.НайтиПоНаименованию("USD");
Отбор = Новый Структура;
Отбор.Вставить("Валюта", Доллары);
Курсы = РегистрыСведений.КурсыВалют;
ТекКурс = Курсы.ПолучитьПоследнее(ТекущаяДата(), Отбор);
Сообщить("Текущий курс доллара: " + ТекКурс.Курс + " руб.");
// ИЛИ ТАК:
CубконтоПодр= РегистрыСведений.РаботникиОрганизаций.ПолучитьПоследнее(Дата, Новый Структура("Сотрудник",Справочники.СотрудникиОрганизаций.НайтиПоРеквизиту("Физлицо",СтрокаТЗ.Физлицо))).ПодразделениеОрганизации;
Категория:
Регистры сведений Отчет Список работавших... с использованием СКД ( Обширный пример ) Нужен Отчет, в котором было бы видно, кто и из какой организации к нам пришел?
Эти данные хранятся в Табличной части "Трудовая деятельность" справочника "ФизическиеЛица", еще нужно вывести в отчет текущую Должность и Подразделение(Выводить ПолноеНаименование, т.е со всеми родителями) работника из регистра сведений "Работники орагнизации" и получить из документа "ПриемНаРаботуВОрганизацию" Дату приема и номер документа.
1. Создаем новый отчет, открываем СКД и добавляем набор данных Запрос. Согласно нашим требованиям формируем запрос:
Код 1C v 8.х ВЫБРАТЬ
ФизическиеЛицаТрудоваяДеятельность.Ссылка,
ФизическиеЛицаТрудоваяДеятельность.НомерСтроки,
ФизическиеЛицаТрудоваяДеятельность.Организация,
ФизическиеЛицаТрудоваяДеятельность.ДатаНачала,
ФизическиеЛицаТрудоваяДеятельность.ДатаОкончания,
ФизическиеЛицаТрудоваяДеятельность.Должность КАК ДолжностьТруд,
ПриемНаРаботуВОрганизациюРаботникиОрганизации.Ссылка.Номер,
ПриемНаРаботуВОрганизациюРаботникиОрганизации.Ссылка.Дата,
РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации,
РаботникиОрганизацийСрезПоследних.Должность КАК Должность,
РаботникиОрганизацийСрезПоследних.Сотрудник.Код,
ПриемНаРаботуВОрганизациюРаботникиОрганизации.ДатаПриема,
РаботникиОрганизацийСрезПоследних.Организация КАК ОрганизацияГлавная,
ВЫБОР
КОГДА РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Родитель.Наименование ЕСТЬ NULL
ТОГДА РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Наименование
КОГДА РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Родитель.Родитель.Наименование ЕСТЬ NULL
ТОГДА РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Родитель.Наименование + " / " + РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Наименование
ИНАЧЕ РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Родитель.Родитель.Наименование + " / " + РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Родитель.Наименование + " / " + РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Наименование
КОНЕЦ КАК ПолныйКод
ИЗ
Справочник.ФизическиеЛица.ТрудоваяДеятельность КАК ФизическиеЛицаТрудоваяДеятельность
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизацийСрезПоследних
ПО ФизическиеЛицаТрудоваяДеятельность.Ссылка = РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо.Ссылка
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПриемНаРаботуВОрганизацию.РаботникиОрганизации КАК ПриемНаРаботуВОрганизациюРаботникиОрганизации
ПО ФизическиеЛицаТрудоваяДеятельность.Ссылка = ПриемНаРаботуВОрганизациюРаботникиОрганизации.ФизЛицо.Ссылка
2. Переходим в закладку Настройки, Заполняем Выбранные поля Добавляем к отчету пустую группировку:
3. В итоге должно получиться:
4. Сохраняем и проверяем отчет, уже что-то формируется
:
5. Теперь сделаем отчет красивым. Добавим отбор по организации на форме, и создадим макет вывода. Создадим основную форму отчета, кроме существующих Элементов панели и Табличного документа "Результат" добавим на форму "ТабличноеПоле" и установим Данные: "КомпоновщикНастроек.Настройки.Отбор"
6. Откроем СКД, закладку Макеты. В табличном поле Нарисуем макет, в левом верхнем поле Добавим макет Группировки "ЗаголовокОтчета:Заголовок" и "СтрокаОтчета:Заголовок". В нижнем левом поле опишем Параметры макета, для "СтрокаОтчета:Заголовок":
7. На закладке Настройки, добавим группировки "ОрганизацияГлавная" и входящая в нее "Детальные записи". Щелкнув правой клавишей мыши на каждой группировке и выбрав из меню пункт "Установить имя..." установим именя областей созданного макета. Заполним Выбранные поля:
8. Внизу на закладке "Отбор" установим:
9. Сохраним отчет и проверим его работу, все ок
Автор:
Евгений Мигачев Категория:
Схема Компоновки Данных Пример выгрузки списка документов в XML файл Код 1C v 8.х Процедура ДействияФормыВыгрузить(Кнопка)
Запись=Новый ЗаписьXML;
Запись.ОткрытьФайл("c:\document.xml");
Запись.ЗаписатьОбъявлениеXML();
Запись.ЗаписатьНачалоЭлемента("Корневой");
Запись.ЗаписатьАтрибут("Доумент", "ПринятиеКУчтетуОС");
Запись.ЗаписатьКомментарий("Краткая информация о принятых к учету ОС");
//Выборка=Документы.ПринятиеКУчетуОС.Выбрать(); //это выгрузка всех документов в базе
// а нам нужно за определенный период:
Выборка=Документы.ПринятиеКУчетуОС.Выбрать(НачДата,КонДата);
Пока Выборка.Следующий()Цикл
Запись.ЗаписатьНачалоЭлемента("Элемент");
Запись.ЗаписатьАтрибут("Номер", Строка(Выборка.Номер));
Запись.ЗаписатьАтрибут("Дата", Строка(Выборка.Дата));
Запись.ЗаписатьАтрибут("Организация", Строка(Выборка.Организация));
Запись.ЗаписатьАтрибут("Склад", Строка(Выборка.Склад));
Запись.ЗаписатьАтрибут("ПодразделениеОрганизации", Строка(Выборка.ПодразделениеОрганизации));
Запись.ЗаписатьАтрибут("МОЛ", Строка(Выборка.МОЛБУ));
Запись.ЗаписатьАтрибут("Оборудование", Строка(Выборка.Номенклатура));
Запись.ЗаписатьАтрибут("ОбъектСтроительства", Строка(Выборка.ОбъектСтроительства));
Запись.ЗаписатьАтрибут("ПервоначальнаяСтоимость", Строка(Выборка.ПервоначальнаяСтоимостьНУ));
Запись.ЗаписатьКонецЭлемента();
КонецЦикла;
Запись.ЗаписатьКонецЭлемента();
Запись.Закрыть();
КонецПроцедуры
Категория:
JSON, XML, TXT, CSV, DBF Сторнирование уже произведенных расчетов прошлых периодов? Аналогично делается сторнирование по регистрам накопления и бухгалтерии
Пример для регистра расчета ОсновныеНачисленияРаботниковОрганизации:
Код 1C v 8.х
ТаблицаСторноЗаписей = Движения.ОсновныеНачисленияРаботниковОрганизации.ПолучитьДополнение();
Для каждого СтрокаСторно Из ТаблицаСторноЗаписей Цикл
// Добавить сторно-записи в набор записей регистра.
// Новая запись движений.
Движение = Движения.ОсновныеНачисленияРаботниковОрганизации.Добавить();
// Заполнить свойства.
Движение.ПериодРегистрации = Строка.ПериодРегистрацииСторно;
Движение.ПериодДействияНачало = Строка.ПериодДействияНачалоСторно;
Движение.ПериодДействияКонец = Строка.ПериодДействияКонецСторно;
Движение.БазовыйПериодНачало = Строка.БазовыйПериодНачало;
Движение.БазовыйПериодКонец = Строка.БазовыйПериодКонец;
Движение.ВидРасчета = Строка.ВидРасчета;
Движение.Сторно = Истина;
// Заполнить измерения.
Движение.ФизЛицо = Строка.ФизЛицо;
Движение.Приказ = Строка.Приказ;
Движение.Организация = Строка.Организация;
// Ресурсы не заполнять, потому что здесь не происходит расчет,
// только подготовка новой записи
// Заполнить реквизиты.
Движение.ГрафикРаботы = Строка.ГрафикРаботы;
Движение.Размер = Строка.Размер;
Движение.ВидУчетаВремени = Строка.ВидУчетаВремени;
Движение.ПодразделениеОрганизации = Строка.ПодразделениеОрганизации;
Движение.ПериодРасчетаСреднегоЗаработкаНачало = Строка.ПериодРасчетаСреднегоЗаработкаНачало;
Движение.ПериодРасчетаСреднегоЗаработкаОкончание = Строка.ПериодРасчетаСреднегоЗаработкаОкончание;
КонецЦикла;
Движения.ОсновныеНачисленияРаботниковОрганизации.Записать();
Категория:
Регистры расчета Как получить запросом «Первый» Родитель элемента справочника Код 1C v 8.х
ВЫБРАТЬ
СотрудникиОрганизаций.Наименование,
ВЫБОР
КОГДА (СотрудникиОрганизаций.ПодразделениеОрганизации.Родитель.Наименование ЕСТЬ NULL ) ТОГДА СотрудникиОрганизаций.ПодразделениеОрганизации.Наименование
КОГДА (СотрудникиОрганизаций.ПодразделениеОрганизации.Родитель.Родитель.Наименование ЕСТЬ NULL ) ТОГДА СотрудникиОрганизаций.ПодразделениеОрганизации.Родитель.Наименование
ИНАЧЕ СотрудникиОрганизаций.ПодразделениеОрганизации.Родитель.Родитель.Наименование
КОНЕЦ КАК Департамент
ИЗ
Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
Категория:
Запросы