запрос ФИО руководителя полностью, сделал на основе оригинальной функции Код 1C v 8.2 УП Функция ОтветственныеЛицаОрганизации(Организация, ДатаСреза, Исполнитель = Неопределено) Экспорт
Результат = Новый Структура( "Руководитель, РуководительДолжность, ГлавныйБухгалтер, Кассир" ) ;
Если Организация < > Неопределено тогда
ЗапросПоЛицам = Новый Запрос( ) ;
ЗапросПоЛицам. УстановитьПараметр( "Организация" , Организация) ;
ЗапросПоЛицам. УстановитьПараметр( "ДатаСреза" , ДатаСреза) ;
ЗапросПоЛицам. Текст = "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ОтветственныеЛицаОрганизацииСрезПоследних.ОтветственноеЛицо,
| ОтветственныеЛицаОрганизацииСрезПоследних.Должность.Наименование КАК Должность,
| ВЫБОР КОГДА (ФИОФизЛицСрезПоследних.ФизЛицо) ЕСТЬ NULL ТОГДА ОтветственныеЛицаОрганизацииСрезПоследних.ФизическоеЛицо.Наименование ИНАЧЕ ФИОФизЛицСрезПоследних.Фамилия + ВЫБОР КОГДА (ФИОФизЛицСрезПоследних.Имя) <> "" "" ТОГДА "" "" + (ФИОФизЛицСрезПоследних.Имя) ИНАЧЕ "" "" КОНЕЦ + ВЫБОР КОГДА (ФИОФизЛицСрезПоследних.Отчество) <> "" "" ТОГДА "" "" + (ФИОФизЛицСрезПоследних.Отчество) ИНАЧЕ "" "" КОНЕЦ КОНЕЦ КАК ФИОПолное
|ИЗ
| РегистрСведений.ОтветственныеЛицаОрганизации.СрезПоследних(&ДатаСреза, СтруктурнаяЕдиница =Организация) КАК ОтветственныеЛицаОрганизацииСрезПоследних
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних(&ДатаСреза, ФизЛицо ССЫЛКА Справочник.ФизическиеЛица) КАК ФИОФизЛицСрезПоследних
| ПО ОтветственныеЛицаОрганизацииСрезПоследних.ФизическоеЛицо = ФИОФизЛицСрезПоследних.ФизЛицо" ;
Выборка = ЗапросПоЛицам. Выполнить( ) . Выбрать( ) ;
Пока Выборка. Следующий( ) Цикл
Если Выборка. ОтветственноеЛицо = Перечисления. ОтветственныеЛицаОрганизации. Руководитель Тогда
Результат. Руководитель = Выборка. ФИОПолное;
Результат. РуководительДолжность = Выборка. Должность;
ИначеЕсли Выборка. ОтветственноеЛицо = Перечисления. ОтветственныеЛицаОрганизации. ГлавныйБухгалтер Тогда
Результат. ГлавныйБухгалтер = Выборка. ФИОПолное;
ИначеЕсли Выборка. ОтветственноеЛицо = Перечисления. ОтветственныеЛицаОрганизации. Кассир Тогда
Результат. Кассир = Выборка. ФИОПолное;
КонецЕсли ;
КонецЦикла ;
КонецЕсли ;
Возврат Результат;
КонецФункции
Категория:
1С Управление торговлей 10.3 Как в 1С Бухгалтерии изменить должность сотрудника, после повышения? Вопрос: Как в 1С Бухгалтерия 8 ПРОФ поменять должность «кладовщик» на «зав.складом», если было повышение?
Ответ: Перевод сотрудника внутри организации на другое постоянное место работы регистрируется в программе "1С:Бухгалтерия 8" (редакция 2.0) документом Кадровое перемещение .
Заходите в меню Кадры - Кадровое перемещение . Нажимаете кнопку Добавить . В поле от указываете дату приказа о переводе на другое место работы. Поле Организация заполняется по умолчанию. Если в информационной базе зарегистрировано более одной организации, то необходимо выбрать ту организацию, внутри которой производится перевод. В поле Сотрудник выбираете сотрудника из справочника Сотрудники , для которого регистрируется перевод. В поле Дата перевода указываете дату перевода на другое место работы сотрудника. В поле Подразделение указываете структурное подразделение, в которое переводится сотрудник (из справочника Подразделения организаций ). В поле Должность указываете новую должность сотрудника из справочника Должности организаций . Изменения в системе оплаты труда сотрудника в связи с переводом регистрируются в табличной части Изменение сведений для расчета зарплаты . Если при переводе изменяется размер планового начисления сотрудника, то в колонке Действие выбираете значение Изменить и задаете новый размер начисления. Если необходимо прекратить плановое начисление, то в колонке Действие выбираете значение Прекратить . При назначении нового начисления - значение Начать . Далее нажимаете на кнопку Провести . По кнопке Печать можно сформировать печатную форму приказа о переводе сотрудника на другую работу Вид документа:
Категория:
1С Бухгалтерия 2.0 Как выбрать должность и подразделение из действующей структуры при создании новой вакансии ЗУП Корп Как мне выбрать должность и подразделение из нашей действующей структуры при создании новой вакансии в разделе «Подбор»?
Для этого в обработке Кадровое планирование необходимо изменить режим кадрового планирования на По структуре юридических лиц
после изменения, при добавлении новой вакансии станут доступны поля:
Организация Подразделение организации
Категория:
1С Зарплата и Управление Персоналом 2.5 Как установить курсор на необходимой строке списка регистра сведений Код 1C v 8.х Отбор = Новый Структура;
Отбор. Вставить( "Подразделение" , ВыбПодразделение) ;
Отбор. Вставить( "Должность" , ВыбДолжность) ;
Рег = РегистрыСведений. СведенияОШтатныхЕдиницах;
КлючЗаписи = Рег. СоздатьКлючЗаписи( Отбор) ;
ЭлементыФормы. ШтатныеЕдиницы. ТекущаяСтрока = КлючЗаписи;
Код 1C v 8.х // Процедура Установить Строку предназначена для позиционирования строки штатного расписания
Процедура УстановитьСтроку(ПарамОрганизация, ПарамПодразделение, ПарамДолжность) Экспорт
Организация = ПарамОрганизация;
ЭлементыФормы.Подразделения.ТекущаяСтрока = ПарамПодразделение;
// установить должность в списке ШтатныеЕдиницы
Запрос = Новый Запрос(
"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации,
| ШтатноеРасписаниеОрганизаций.Должность,
| ШтатноеРасписаниеОрганизаций.Период КАК Период
|ИЗ
| РегистрСведений.ШтатноеРасписаниеОрганизаций КАК ШтатноеРасписаниеОрганизаций
|ГДЕ
| ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации = &ПодразделениеОрганизации
| И ШтатноеРасписаниеОрганизаций.Должность = &Должность
|
|УПОРЯДОЧИТЬ ПО
| Период УБЫВ");
Запрос.УстановитьПараметр("ПодразделениеОрганизации", ПарамПодразделение);
Запрос.УстановитьПараметр("Должность", ПарамДолжность);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Количество() = 1 Тогда
Выборка.Следующий();
ЗначениеКлюча = Новый Структура("ПодразделениеОрганизации, Должность, Период", Выборка.ПодразделениеОрганизации, Выборка.Должность, Выборка.Период);
ЭлементыФормы.ШтатныеЕдиницы.ТекущаяСтрока = РегистрыСведений.ШтатноеРасписаниеОрганизаций.СоздатьКлючЗаписи(ЗначениеКлюча);
КонецЕсли;
КонецПроцедуры
Категория:
Регистры сведений Как удалить должность из штатного расписания ЗУП 2.5 Для Удаления должности из штатного расписания вводится новая строка на эту должность в штатное расписание с нужной датой(с которой должность убирается) и количеством ставок = 0 .
Категория:
1С Зарплата и Управление Персоналом 2.5 Как поменять период у записей периодического независимого регистра, соответствующих ряду условий? В периодическом независимом регистре сведений ОтветственныеЛицаОрганизации все записи, касающиеся организации с наименованием Групп-трейдинг, период которых меньше 01 января 2005 года, необходимо перенести на 01 января 2004 года. Но записи с указанием должностей Продавец и Кладовщик должны остаться на своих местах.
Сначала получим таблицу записей, которые подлежат модификации. Поскольку условий несколько, да еще и не на равенство, оптимальнее это сделать при помощи запроса. А потом, перебирая результат запроса, добьемся требуемого результата:
Код 1C v 8.х
Процедура ЗаменаПериода()
Запрос = Новый Запрос;
Запрос. Текст =
"ВЫБРАТЬ
| ОтветственныеЛицаОрганизации.Период,
| ОтветственныеЛицаОрганизации.СтруктурнаяЕдиница,
| ОтветственныеЛицаОрганизации.ОтветственноеЛицо
|ИЗ
| РегистрСведений.ОтветственныеЛицаОрганизации КАК ОтветственныеЛицаОрганизации
|ГДЕ
| ОтветственныеЛицаОрганизации.Период <= ДАТАВРЕМЯ(2005, 1, 1)
| И
| ОтветственныеЛицаОрганизации.СтруктурнаяЕдиница.Наименование ПОДОБНО "" Групп-Трейдинг""
| И
| (ОтветственныеЛицаОрганизации.Должность.Наименование ЕСТЬ NULL
| ИЛИ
| НЕ(ОтветственныеЛицаОрганизации.Должность.Наименование ПОДОБНО "" Продавец""
| ИЛИ
| ОтветственныеЛицаОрганизации.Должность.Наименование ПОДОБНО "" Кладовщик"" ))" ;
Результат = Запрос. Выполнить( ) ;
Выборка = Результат. Выбрать( ) ;
Запись = РегистрыСведений. ОтветственныеЛицаОрганизации. СоздатьМенеджерЗаписи( ) ;
Пока Выборка. Следующий( ) Цикл
Запись. Период = Выборка. Период;
Запись. СтруктурнаяЕдиница = Выборка. СтруктурнаяЕдиница;
Запись. ОтветственноеЛицо = Выборка. ОтветственноеЛицо;
Запись. Прочитать( ) ;
Если Запись. Выбран( ) Тогда
Запись. Период = Дата( 2004 , 1 , 1 ) ;
Запись. Записать( ) ;
КонецЕсли ;
КонецЦикла ;
КонецПроцедуры ;
Результат запроса – таблица, в которой по каждой записи заполнены все поля измерений из регистра и поле Период. Именно эту информацию мы используем для получения каждой нужной записи.
Источником данных для запроса послужила таблица РегистрСведений.ОтветственныеЛицаОрганизации.
Отборы были применены так, чтобы в результат попали записи с периодом менее 1 января 2005 года, наименование структурных единиц в которых – Групп-трейдинг, а наименования должностей не относятся к Продавец и Кладовщик. Кроме того, необходимо позаботиться о случае, когда
должность вообще не указана, то есть ее наименование имеет значение NULL. Такие записи тоже нужно будет переносить.
Запрос выполнен, далее перебираем его результат и посредством менеджера записи регистра ОтветственныеЛицаОрганизации добиваемся желаемого. При каждом проходе цикла считываем очередную запись, предварительно указав значение ее поля Период и полей измерений.
Далее меняем значение поля Период у считанной записи и записываем ее в регистр.
Категория:
Регистры сведений Создание 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( ) ;
Запись. ЗаписатьНачалоЭлемента( "orgstructure" ) ;
Запрос = Новый Запрос;
Запрос. Текст= "
|ВЫБРАТЬ
| РаботникиОрганизацийСрезПоследних.Сотрудник,
| РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
| РаботникиОрганизацийСрезПоследних.Должность,
| РаботникиОрганизацийСрезПоследних.Период,
| РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Порядок КАК ПодразделениеОрганизацииПорядок,
| РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния
|ИЗ
| РегистрСведений.РаботникиОрганизаций.СрезПоследних(&dateper, ) КАК РаботникиОрганизацийСрезПоследних
|
|УПОРЯДОЧИТЬ ПО
| ПодразделениеОрганизацииПорядок
|ИТОГИ ПО
| ПодразделениеОрганизации ИЕРАРХИЯ
|АВТОУПОРЯДОЧИВАНИЕ
|" ;
Запрос. УстановитьПараметр( "dateper" , ТекущаяДата( ) ) ;
Результат = Запрос. Выполнить( ) ;
Дерево = Результат. Выгрузить( ОбходРезультатаЗапроса. ПоГруппировкамСИерархией) ;
ОбойтиУровеньДерева( Дерево. Строки, Запись) ;
Запись. ЗаписатьКонецЭлемента( ) ;
Запись. Закрыть( ) ;
КонецПроцедуры
Категория:
JSON, XML, TXT, CSV, DBF Отчет Список работавших... с использованием СКД ( Обширный пример ) Нужен Отчет, в котором было бы видно, кто и из какой организации к нам пришел?
Эти данные хранятся в Табличной части "Трудовая деятельность" справочника "ФизическиеЛица", еще нужно вывести в отчет текущую Должность и Подразделение(Выводить ПолноеНаименование, т.е со всеми родителями) работника из регистра сведений "Работники орагнизации" и получить из документа "ПриемНаРаботуВОрганизацию" Дату приема и номер документа.
1. Создаем новый отчет, открываем СКД и добавляем набор данных Запрос. Согласно нашим требованиям формируем запрос:
Код 1C v 8.х ВЫБРАТЬ
ФизическиеЛицаТрудоваяДеятельность. Ссылка,
ФизическиеЛицаТрудоваяДеятельность. НомерСтроки,
ФизическиеЛицаТрудоваяДеятельность. Организация,
ФизическиеЛицаТрудоваяДеятельность. ДатаНачала,
ФизическиеЛицаТрудоваяДеятельность. ДатаОкончания,
ФизическиеЛицаТрудоваяДеятельность. Должность КАК ДолжностьТруд,
ПриемНаРаботуВОрганизациюРаботникиОрганизации. Ссылка. Номер,
ПриемНаРаботуВОрганизациюРаботникиОрганизации. Ссылка. Дата,
РаботникиОрганизацийСрезПоследних. ПодразделениеОрганизации,
РаботникиОрганизацийСрезПоследних. Должность КАК Должность,
РаботникиОрганизацийСрезПоследних. Сотрудник. Код,
ПриемНаРаботуВОрганизациюРаботникиОрганизации. ДатаПриема,
РаботникиОрганизацийСрезПоследних. Организация КАК ОрганизацияГлавная,
ВЫБОР
КОГДА РаботникиОрганизацийСрезПоследних. ПодразделениеОрганизации. Родитель. Наименование ЕСТЬ NULL
ТОГДА РаботникиОрганизацийСрезПоследних. ПодразделениеОрганизации. Наименование
КОГДА РаботникиОрганизацийСрезПоследних. ПодразделениеОрганизации. Родитель. Родитель. Наименование ЕСТЬ NULL
ТОГДА РаботникиОрганизацийСрезПоследних. ПодразделениеОрганизации. Родитель. Наименование + " / " + РаботникиОрганизацийСрезПоследних. ПодразделениеОрганизации. Наименование
ИНАЧЕ РаботникиОрганизацийСрезПоследних. ПодразделениеОрганизации. Родитель. Родитель. Наименование + " / " + РаботникиОрганизацийСрезПоследних. ПодразделениеОрганизации. Родитель. Наименование + " / " + РаботникиОрганизацийСрезПоследних. ПодразделениеОрганизации. Наименование
КОНЕЦ КАК ПолныйКод
ИЗ
Справочник. ФизическиеЛица. ТрудоваяДеятельность КАК ФизическиеЛицаТрудоваяДеятельность
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений. РаботникиОрганизаций. СрезПоследних КАК РаботникиОрганизацийСрезПоследних
ПО ФизическиеЛицаТрудоваяДеятельность. Ссылка = РаботникиОрганизацийСрезПоследних. Сотрудник. Физлицо. Ссылка
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ. ПриемНаРаботуВОрганизацию. РаботникиОрганизации КАК ПриемНаРаботуВОрганизациюРаботникиОрганизации
ПО ФизическиеЛицаТрудоваяДеятельность. Ссылка = ПриемНаРаботуВОрганизациюРаботникиОрганизации. ФизЛицо. Ссылка
2. Переходим в закладку Настройки, Заполняем Выбранные поля Добавляем к отчету пустую группировку:
3. В итоге должно получиться:
4. Сохраняем и проверяем отчет, уже что-то формируется
:
5. Теперь сделаем отчет красивым. Добавим отбор по организации на форме, и создадим макет вывода. Создадим основную форму отчета, кроме существующих Элементов панели и Табличного документа "Результат" добавим на форму "ТабличноеПоле" и установим Данные: "КомпоновщикНастроек.Настройки.Отбор"
6. Откроем СКД, закладку Макеты. В табличном поле Нарисуем макет, в левом верхнем поле Добавим макет Группировки "ЗаголовокОтчета:Заголовок" и "СтрокаОтчета:Заголовок". В нижнем левом поле опишем Параметры макета, для "СтрокаОтчета:Заголовок":
7. На закладке Настройки, добавим группировки "ОрганизацияГлавная" и входящая в нее "Детальные записи". Щелкнув правой клавишей мыши на каждой группировке и выбрав из меню пункт "Установить имя..." установим именя областей созданного макета. Заполним Выбранные поля:
8. Внизу на закладке "Отбор" установим:
9. Сохраним отчет и проверим его работу, все ок
Автор:
Евгений Мигачев Категория:
Схема Компоновки Данных Вывести список элементов справочника в Word используя шаблон spisok.dot Код 1C v 7.x Процедура ВывестиСписокЭлементовСправочникаВWord()
спр1 = создатьобъект( "справочник.сотрудники" ) ;
спр1 . ИспользоватьДату( ТекущаяДата( ) ) ;
Сообщить( спр1 . НайтиПоНаименованию( "Администрация" , 0 , 1 ) ) ;
Сообщить( спр1 . ПолучитьАтрибут( "Наименование" ) ) ;
сотр= создатьобъект( "справочник.сотрудники" ) ;
сотр. ИспользоватьДату( ТекущаяДата( ) ) ;
сотр. ИспользоватьРодителя( спр1 ) ;
отчет= создатьобъект( "word.application" ) ;
отчет. visible = 1 ;
отчет. documents. add( "d:\spisok.dot" ) ;
отчет. documents( 1 ) . tables( 1 ) . cell( 1 , 2 ) . range. text= спр1 . ПолучитьАтрибут( "Наименование" ) ;
сотр. ВыбратьЭлементы( ) ;
ном= 2 ;
Пока сотр. ПолучитьЭлемент( 1 ) = 1 цикл
Сообщить( сотр. ПолучитьАтрибут( "Наименование" ) ) ;
отчет. documents( 1 ) . tables( 2 ) . cell( ном, 1 ) . range. text = сотр. ПолучитьАтрибут( "Код" ) ;
отчет. documents( 1 ) . tables( 2 ) . cell( ном, 2 ) . range. text = сотр. ПолучитьАтрибут( "Наименование" ) ;
отчет. documents( 1 ) . tables( 2 ) . cell( ном, 3 ) . range. text = сотр. ПолучитьАтрибут( "Должность" ) ;
отчет. documents( 1 ) . tables( 2 ) . cell( ном, 4 ) . range. text = сотр. ПолучитьАтрибут( "Оклад" ) ;
отчет. documents( 1 ) . tables( 2 ) . rows. add( ) ;
ном= ном+ 1 ;
КонецЦикла ;
КонецПроцедуры
Категория:
Работа с Microsoft Office и OpenOffice Функция дни рождения сотрудников Данная функция написана для ЗиК 7.7
Код 1C v 7.x
Функция СтрГода(Возраст)
Остаток = Возраст%10 ;
Если Остаток = 1 Тогда
Стр = "год" ;
ИначеЕсли ( ( Остаток > 1 ) и ( Остаток < 5 ) ) Тогда
Стр = "года" ;
Иначе
Стр = "лет" ;
КонецЕсли ;
Возврат Стр;
КонецФункции
Процедура ДниРожденияСотрудников()
ТекстДР= "" ;
Именинники = СоздатьОбъект( "СписокЗначений" ) ;
СпрСотр = СоздатьОбъект( "Справочник.Сотрудники" ) ;
СпрСотр. ВыбратьЭлементы( ) ;
Пока СпрСотр. ПолучитьЭлемент( ) = 1 Цикл
ТекЭлем = СпрСотр. ТекущийЭлемент( ) ;
Если ТекЭлем. ЭтоГруппа( ) = 0 Тогда
Если ( ( ТекЭлем. Родитель < > "Уволенные" ) ) Тогда
ТекСотр = СпрСотр. ТекущийЭлемент( ) ;
Если ( ПустоеЗначение( ТекСотр. СостояниеФизЛица. Получить( НачМесяца( ТекущаяДата( ) ) ) ) = 0 ) Тогда
Если ( ДатаМесяц( ТекСотр. ДатаРождения) = ДатаМесяц( ТекущаяДата( ) ) ) Тогда
Именинники. ДобавитьЗначение( ТекСотр) ;
КонецЕсли ;
КонецЕсли ;
КонецЕсли ;
КонецЕсли ;
КонецЦикла ;
Если Именинники. РазмерСписка( ) < > 0 Тогда
ТекстДР= ТекстДР+ " ********* СПИСОК ИМЕНИННИКОВ *********" + РазделительСтрок+ " за месяц " + Формат( ТекущаяДата( ) , "ДММММ" ) + РазделительСтрок;
ТекстДР= ТекстДР+ "-----------------------------------------------------------------------------------------------------------------------------------------------" + РазделительСтрок;
Для к = 1 по Именинники. РазмерСписка( ) Цикл
Сотр = Именинники. ПолучитьЗначение( к) ;
Возраст = ( Число( ДатаГод( ТекущаяДата( ) ) ) - Число( ДатаГод( Сотр. ДатаРождения) ) ) ;
РазницаДней = ( Число( ДатаЧисло( Сотр. ДатаРождения) ) - Число( ДатаЧисло( ТекущаяДата( ) ) ) ) ;
СтрГода = СтрГода( Возраст) ;
Если ( ДатаЧисло( Сотр. ДатаРождения) < ДатаЧисло( ТекущаяДата( ) ) ) Тогда
ТекстДР= ТекстДР+ " " + Сотр+ " " + Сотр. ДатаРождения+ " уже исполнилось " + Возраст+ " " + СтрГода+ "!" + РазделительСтрок;
Иначе
Если ( РазницаДней = 2 ) Тогда
ТекстДР= ТекстДР+ "ПОСЛЕЗАВТРА! " + Сотр+ " послезавтра " + Сотр. ДатаРождения+ " будет праздновать " + Возраст + "-й День Рождения!!!! " ;
ИначеЕсли ( РазницаДней = 1 ) Тогда
ТекстДР= ТекстДР+ "ЗАВТРА! " + Сотр + " будет отмечает свой " + Возраст + "-й День рождения!" ;
ИначеЕсли ( РазницаДней = 0 ) Тогда
ТекстДР= ТекстДР+ "СЕГОДНЯ! " + Сотр + " отмечает свой " + Возраст + "-й День рождения!" ;
КонецЕсли ;
ТекстДР= ТекстДР+ " ( " + Сотр. Подразделение. Получить( ТекущаяДата( ) ) + " , " + Сотр. Должность. Получить( ТекущаяДата( ) ) + " )" + РазделительСтрок;
КонецЕсли ;
КонецЦикла ;
Иначе
ТекстДР= ТекстДР+ "В текущем месяце именинников нет!" ;
КонецЕсли ;
Сообщить( ТекстДР) ;
КонецПроцедуры
В файловом архиве есть и сама обработка.
Категория:
Полезные, Универсальные Функции