Загрузка из файла JSON в документы Перенос данных сведений о доходах сотрудников

14.02.24

Учетные задачи - Зарплата

Предлагаю простенькую обработку для загрузки из файлов JSON сведений для расчета среднего заработка (для расчета больничных). Данные записываются в документы Переносы данных с номерами ЗП_СЗО (регистр накопления "Данные о начислениях для расчета среднего заработка общий).

Скачать исходный код

Наименование Файл Версия Размер
Загрузка из файла JSON в документы Перенос данных (ЗП_СЗО) сведений о доходах сотрудников:
.epf 9,40Kb
11
.epf 9,40Kb 11 Скачать бесплатно

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

Данные записываются в документы Переносы данных с номерами ЗП_СЗО (регистр накопления "ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаОбщий).

Для чего данная обработка может понадобиться: при внедрении ЗУП, если приходится переносить большой объем данных вручную.

Файл JSON должен быть в следующем формате:

{
    "Фамилия1 Имя1 Отчество1": {
        "Подразделение": "Подразделение 1",
        "01.09.2023 0:00:00": "11111,11",
        "01.08.2023 0:00:00": "11111,11",
        "01.07.2023 0:00:00": "11111,11",
        "01.06.2023 0:00:00": "11111,11",
        "01.12.2023 0:00:00": "11111,11",
        "01.11.2023 0:00:00": "11111,11",
        "01.05.2023 0:00:00": "11111,11",
        "01.04.2023 0:00:00": "11111,11",
        "01.10.2023 0:00:00": "11111,11",
        "01.03.2023 0:00:00": "11111,11",
        "01.02.2023 0:00:00": "11111,11",
        "01.01.2023 0:00:00": "11111,11"
    },
    "Фамилия2 Имя2 Отчество2": {
        "Подразделение": "Подразделение 2",
        "01.09.2023 0:00:00": "22222,22",
        "01.08.2023 0:00:00": "22222,22",
        "01.07.2023 0:00:00": "22222,22",
        "01.06.2023 0:00:00": "22222,22",
        "01.12.2023 0:00:00": "22222,22",
        "01.11.2023 0:00:00": "22222,22",
        "01.05.2023 0:00:00": "22222,22",
        "01.04.2023 0:00:00": "22222,22",
        "01.10.2023 0:00:00": "22222,22",
        "01.03.2023 0:00:00": "22222,22",
        "01.02.2023 0:00:00": "22222,22",
        "01.01.2023 0:00:00": "22222,22"
    }
}

 

Как работает алгоритм заполнения:

1. в цикле происходит перебор всех документов ЗП_СЗО

2. во вложенном цикле перебираются все сотрудники

3. создается временная таблица, куда попадают данные из файла при совпадении даты документа ЗП_СЗО и ключа из файла JSON

4. таблица записывается в регистр

 

Исходный код обработки:


&НаКлиенте
Процедура ИмяФайлаJSONНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка)
	Оповещение = Новый ОписаниеОповещения("ПослеВыбораФайлаJSON", ЭтотОбъект);
	Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
	Диалог.Заголовок = "Выберите файл JSON с доходами сотрудников";
	Диалог.Фильтр = НСтр("ru='json';en='json'") + "(*.json)|*.json";
	Диалог.Показать(Оповещение);
	
КонецПроцедуры

&НаКлиенте
Процедура ПослеВыбораФайлаJSON(ВыбранныеФайлы, Параметры) Экспорт
	Если ВыбранныеФайлы = Неопределено Тогда
		Сообщить("Не выбран файл json");
		Возврат;
	КонецЕсли;
	ПутьКФайлу = ВыбранныеФайлы[0];
	ИмяФайлаJSON = ПутьКФайлу;
КонецПроцедуры

&НаСервере
Функция ПоискДокументовЗП_СЗО()
	ЗапросЗПСЗО = Новый Запрос;
	ЗапросЗПСЗО.Текст = "
		|ВЫБРАТЬ 
		|ПереносДанных.Ссылка,
		|ПереносДанных.ПериодРегистрации
		|ИЗ
		|	Документ.ПереносДанных КАК ПереносДанных
		|ГДЕ
		|	НЕ ПереносДанных.ПометкаУдаления И
		|	ПереносДанных.Номер = ""ЗП_СЗО""
		|УПОРЯДОЧИТЬ ПО ПереносДанных.ПериодРегистрации
	|";
	РезультатЗапроса = ЗапросЗПСЗО.Выполнить();
	Если РезультатЗапроса.Пустой() Тогда
		Возврат Неопределено;
	КонецЕсли;
	ВыборкаЗПСЗО = РезультатЗапроса.Выбрать();
	Соответствие1 = Новый Соответствие;
	Пока ВыборкаЗПСЗО.Следующий() Цикл
		ПериодРегистрации = ВыборкаЗПСЗО.ПериодРегистрации;
		Ссылка = ВыборкаЗПСЗО.Ссылка;
		Если ПериодРегистрации <> Неопределено И Ссылка <> Неопределено Тогда
			Соответствие1.Вставить(ПериодРегистрации,Ссылка);
		КонецЕсли;
	КонецЦикла;
	Возврат Соответствие1;	
КонецФункции

&НаКлиенте
Процедура ВыполнитьИмпорт(Команда)
	// проверить, что выбрана организация
	Если НЕ ЗначениеЗаполнено(ВыборОрганизации) Тогда
		Сообщить("Не выбрана организация");
		Возврат;
	КонецЕсли;
	
	// проверить, что файл выбран
	Если НЕ ЗначениеЗаполнено(ИмяФайлаJSON) Тогда
		Сообщить("Не выбран файл для импорта");
		Возврат;
	КонецЕсли;
	
	// десериализация JSON
	Попытка
		чтениеJSON = Новый ЧтениеJSON();
		чтениеJSON.ОткрытьФайл(ИмяФайлаJSON);
		Сотрудники = ПрочитатьJSON(чтениеJSON, Истина);
		чтениеJSON.Закрыть();
	Исключение
		Сообщить("Десериализация JSON .......... ОШИБКА");
		Возврат;
	КонецПопытки;
	
	// поиск документов типа ЗП_СЗО
	РезультатПоискаДокументовЗПСЗО = ПоискДокументовЗП_СЗО();
	Если РезультатПоискаДокументовЗПСЗО = Неопределено Тогда
		Сообщить("Не найдены документы ЗП_СЗО. Продолжение невозможно");		
		Возврат;
	КонецЕсли;  
	
	// Передать найденные документы ЗП_СЗО
	ПодготовитьТаблицу(РезультатПоискаДокументовЗПСЗО, Сотрудники, ВыборОрганизации);
	
КонецПроцедуры

&НаСервере
Процедура ПодготовитьТаблицу(РезультатПоискаДокументовЗПСЗО, Сотрудники, ВыбраннаяОрганизация)
	МассивОшибок = Новый Массив;
	// перебрать все документы ЗП_СЗО
	Для Каждого Элемент Из РезультатПоискаДокументовЗПСЗО Цикл
		ПериодРегистрации = Дата(Элемент.Ключ);
		СсылкаДокументЗПСЗО = Элемент.Значение;
		// создать и подготовить таблицу значений
		Таблица = Новый ТаблицаЗначений;
		Таблица.Колонки.Добавить("Регистратор", Новый ОписаниеТипов("ДокументСсылка.ПереносДанных"));
		Таблица.Колонки.Добавить("Активность", Новый ОписаниеТипов("Булево"));
		Таблица.Колонки.Добавить("ОблагаетсяЕНВД", Новый ОписаниеТипов("Булево"));
		Таблица.Колонки.Добавить("Индексируется", Новый ОписаниеТипов("Булево"));
		Таблица.Колонки.Добавить("Период", Новый ОписаниеТипов("Дата"));
		Таблица.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число"));
		Таблица.Колонки.Добавить("ФизическоеЛицо", Новый ОписаниеТипов("СправочникСсылка.ФизическиеЛица"));
		Таблица.Колонки.Добавить("Сотрудник", Новый ОписаниеТипов("СправочникСсылка.Сотрудники"));
		Таблица.Колонки.Добавить("ПорядокРасчета", Новый ОписаниеТипов("ПеречислениеСсылка.ПорядокРасчетаСреднегоЗаработкаОбщий"));
		Таблица.Колонки.Добавить("СоставнаяЧасть", Новый ОписаниеТипов("ПеречислениеСсылка.УчетНачисленийВСреднемЗаработкеОбщий"));
		Таблица.Колонки.Добавить("Организация", Новый ОписаниеТипов("СправочникСсылка.Организации"));
		Таблица.Колонки.Добавить("Сторно", Новый ОписаниеТипов("Булево"));
		// необязательные колонки
		Таблица.Колонки.Добавить("Год", Новый ОписаниеТипов("Число"));
		Таблица.Колонки.Добавить("ДатаНачалаБазовогоПериода", Новый ОписаниеТипов("Дата"));
		Таблица.Колонки.Добавить("КоличествоМесяцев", Новый ОписаниеТипов("Число"));
		// перебрать всех сотрудников 
		Для Каждого Сотрудник Из Сотрудники Цикл
			ФИО = Сотрудник.Ключ;
			Соответствие1 = Сотрудник.Значение; // здесь все доходы по сотруднику
			Подразделение = Соответствие1["Подразделение"]; 
			СсылкаНаСотрудника = Неопределено;
			ФизическоеЛицо = Неопределено;	
			Если ФИО=Неопределено ИЛИ Подразделение=Неопределено Тогда
				Сообщить("Ошибка в файле JSON: отсутствуют ФИО и(или) подразделение");
				Возврат;
			КонецЕсли;
			// получить ссылку на сотрудника
		    запросПоискСотрудника = Новый Запрос;
			запросПоискСотрудника.Текст = "
				|ВЫБРАТЬ
				|Сотрудники.Ссылка КАК Сотрудник,
				|Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
				|КадроваяИстория.Подразделение КАК Подразделение
				|ИЗ
				|	Справочник.Сотрудники КАК Сотрудники
				|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ
				|		РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&Дата) КАК КадроваяИстория
				|	ПО
				|		КадроваяИстория.Сотрудник = Сотрудники.Ссылка 	
				|ГДЕ
				|	НЕ Сотрудники.ПометкаУдаления И
				|	НЕ Сотрудники.Код Есть NULL	И
				|	НЕ Сотрудники.Код = """" И
				|	Сотрудник.Наименование = &ФИО И
				|	КадроваяИстория.Подразделение.Наименование = &Подразделение	
				|УПОРЯДОЧИТЬ ПО Сотрудник
			|";
			запросПоискСотрудника.УстановитьПараметр("Дата",ТекущаяДата());
			запросПоискСотрудника.УстановитьПараметр("ФИО",ФИО);
			запросПоискСотрудника.УстановитьПараметр("Подразделение",Подразделение);			
			РезультатЗапроса = запросПоискСотрудника.Выполнить();
			// если сотрудник найден в базе ЗУП
			Если НЕ РезультатЗапроса.Пустой() Тогда	
				ВыборкаПоискСотрудника = РезультатЗапроса.Выбрать();			
				Пока ВыборкаПоискСотрудника.Следующий() Цикл
					СсылкаНаСотрудника = ВыборкаПоискСотрудника.Сотрудник;
					ФизическоеЛицо = ВыборкаПоискСотрудника.ФизическоеЛицо;
				КонецЦикла;			
				// перебрать все итоги по зарплате у сотрудника
				Для Каждого Элемент Из Соответствие1 Цикл
					Если Элемент.Ключ <> "Подразделение" Тогда
						ПериодДохода = Дата(Элемент.Ключ);
						СуммаДохода = Число(Элемент.Значение);
						// Если дата документа ЗП_СЗО и дата дохода сотрудника совпадают, то записать в таблицу значений
						Если ПериодДохода = ПериодРегистрации Тогда
							НоваяСтрока = Таблица.Добавить();
							НоваяСтрока.Регистратор = СсылкаДокументЗПСЗО;
							НоваяСтрока.Активность = Истина;
							НоваяСтрока.ОблагаетсяЕНВД = Ложь;
							НоваяСтрока.Индексируется = Ложь;
							НоваяСтрока.Период = ПериодДохода;
							НоваяСтрока.Сумма = СуммаДохода;
							НоваяСтрока.ФизическоеЛицо = ФизическоеЛицо;
							НоваяСтрока.Сотрудник = СсылкаНаСотрудника;
							НоваяСтрока.ПорядокРасчета = Перечисления.ПорядокРасчетаСреднегоЗаработкаОбщий.Постановление2010;
							НоваяСтрока.СоставнаяЧасть = Перечисления.УчетНачисленийВСреднемЗаработкеОбщий.ОбщийЗаработок;
							НоваяСтрока.Организация = ВыбраннаяОрганизация;
							НоваяСтрока.Сторно = Ложь;
							// необязательные данные
							НоваяСтрока.Год = Год(ПериодРегистрации);
							НоваяСтрока.ДатаНачалаБазовогоПериода = ПериодРегистрации;
							НоваяСтрока.КоличествоМесяцев = 1;
							//Сообщить("Документ:" + Строка(СсылкаДокументСПСЗО) + ", Сотрудник:" + Строка(СсылкаНаСотрудника) + ", Период дохода:" +Строка(ПериодДохода) + ", Сумма дохода:" +Строка(СуммаДохода));
						КонецЕсли;
					КонецЕсли;
				КонецЦикла;
			Иначе
				Если МассивОшибок.Найти("Сотрудник " + ФИО + " есть в файле выгрузки, но не найден в базе ЗУП") = Неопределено Тогда
					//Сообщить("Сотрудник " + ФИО + " есть в файле выгрузки, но не найден в базе ЗУП");
					МассивОшибок.Добавить("Сотрудник " + ФИО + " есть в файле выгрузки, но не найден в базе ЗУП");
				КонецЕсли;
				//Прервать;
			КонецЕсли;	
		КонецЦикла;	
		// если в таблице есть данные, записать в регистр
		Если Таблица.Количество() >0 Тогда
			НаборЗаписей = РегистрыНакопления.ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаОбщий.СоздатьНаборЗаписей();
			НаборЗаписей.Отбор.Сбросить();
			НаборЗаписей.Отбор.Регистратор.Установить(СсылкаДокументЗПСЗО);
			НаборЗаписей.Загрузить(Таблица);
			НаборЗаписей.Записать();
		Иначе
			Сообщить("Есть документ ЗП_СЗО с периодом " + Строка(ПериодРегистрации) + ", но данных нет");
		КонецЕсли;
	КонецЦикла;
	Для Каждого Ошибка Из МассивОшибок Цикл
		Сообщить(Ошибка);
	КонецЦикла;
	Сообщить("Выполнено");
КонецПроцедуры	


 

Проверено на следующих конфигурациях и релизах:

  • Зарплата и управление персоналом, редакция 3.1, релизы 3.1.28.11

См. также

Обновление для КА 1.1, ЗУП 2.5, БУХ 2.0: НДС, ЕФС-1, Расчет страховых взносов, Мобилизация, Статистика, Электронные трудовые книжки, 2-НДФЛ, Регламентированная отчетность, Кадровый учет, Прослеживаемость импортных товаров

Зарплата Регламентированный учет и отчетность Кадровый учет Обновление 1С Платформа 1С v8.3 Сложные периодические расчеты 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Зарплата и Управление Персоналом 2.5 Бухгалтерский учет Налоговый учет Управленческий учет Акцизы ЕНВД ЕСН Земельный налог ИП, ПБОЮЛ, КФХ Налог на имущество Налог на прибыль НДС НДФЛ ФОМС, ЕФС Транспортный налог УСН ПСН (патентная система налогообложения) Платные (руб)

Обновления для конфигураций: КА 1.1; ЗУП 2.5; БУХ 2.0; КА 1.1 Комплексная автоматизация торговли алкогольной продукцией; КА 1.1 Комплексный учет сельскохозяйственного предприятия

19900 руб.

01.04.2020    141493    668    352    

233

[ED3] Обмен для ERP 2.5, КА 2.5, УТ 11.5 БП 3.0, Розница, УНФ и других с EnterpriseData (универсальный формат обмена), правила обмена

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

25080 руб.

12.06.2017    135911    732    291    

393

SALE! 10%

Перенос данных из ERP 2 / КА 2 / УТ 11 в БП 3.0. Переносятся документы, начальные остатки и справочники

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | В продаже с 2019г. | Воспользовались более 176 предприятий! | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой, обращайтесь!

38500 34650 руб.

15.04.2019    69104    181    139    

111

Перенос данных из Парус 8 в ЗГУ 3

Зарплата Внешние источники данных Бюджетный учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 8 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

84000 руб.

19.08.2020    22672    19    1    

22

Перенос данных из УПП 1.3 в БП 3.0. Переносятся документы (обороты за период), справочная информация и остатки

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.226.x) и БП 3.0 (3.0.151.x). Правила подходят для версии ПРОФ и КОРП.

28000 руб.

15.12.2021    20752    136    38    

95

Перенос данных из УТ 10.3 в УТ 11.5. Переносятся документы (обороты за период), справочная информация и остатки

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 1С:Управление торговлей 11 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.87.x) и УТ 11.5 (11.5.16.x).

28000 руб.

23.07.2020    47017    201    64    

162

SALE! 10%

Перенос данных из ERP 2 / КА 2 в ЗУП 3. Переносятся остатки, документы и справочники

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из ERP в ЗУП 3 | из КА 2 в ЗУП | Воспользовались более 79 предприятий! | Предлагаем приобрести готовые правила конвертации данных (КД 2) для переноса остатков, документов с движениями и справочной информации 3 | В продаже с 2020г. | Оперативно обновляем правила до актуальных релизов 1С | Есть перенос начальной задолженности по зарплате и начальной штатной расстановки на выбранную дату | Обороты за прошлые годы (данные для расчета среднего) переносятся свернуто в документ "Перенос данных" | Есть фильтр по организациям | Документы за текущий период переносятся сразу с движениями, поэтому не потребуется делать перерасчеты | Перенос можно проверить перед покупкой, обращайтесь!

48278 43450 руб.

03.12.2020    34577    83    58    

81

SALE! 10%

Перенос данных из БП 3.0 в УНФ 3.0 / УНФ 1.6. Переносятся остатки, документы и справочная информация

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

В продаже с 2018г. | Воспользовались более 41 предприятия! | Правила конвертации (КД 2) для переноса данных из БП 3 в УНФ | Переносятся все виды документов, начальные остатки и вся возможная справочная информация | Есть фильтр по организациям | Оперативно обновляем на новые релизы | Оказываем техподдержку | В комплект файлов входит инструкция, авторская версия обработки "Универсальный обмен...", актуальные правила переноса данных и архив старых версий переноса | Учет в БП 3 должен быть корректным, некорректные данные не переносятся | Можно бесплатно проверить на вашем сервере до покупки!

50722 руб.

10.07.2018    67982    41    123    

46
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. laperuz 46 15.02.24 05:34 Сейчас в теме
Я конечно понимаю, что бесплатно даете, но:

1. Для расчета больничных в ЗУП используется регистр ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаФСС.
А регистр, в который пишете Вы(ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаОбщий) используется для расчета среднего для отпуска и командировок.

2. Запрос в цикле - не надо так(я про поиск сотрудника). Ну и в целом, ФИО не является уникальным идентификатором, поэтому на полных тезках сломается. Надо чтобы в исходном файле не ФИО было, а табельный номер и по нему искать.
4. Vinzor 91 02.03.24 19:30 Сейчас в теме
(1) Чуть поправлю.
Сведения о доходах для "больничных" ведутся по физлицам. Значит, нужен нормальный уникальный реквизит физлица. Например, СНИЛС.

Здесь не всё учитывается. Например, дни болезней, которые вычитаются при расчете среднего для БИР или ОПУЗР.

Самый "безгеморойный" способ - через входящую справку для расчета пособий
2. user1892597 6 15.02.24 07:23 Сейчас в теме
Спасибо большое за советы.

Отмечу, что данная обработка запускается разово и оптимизация работы - вопрос даже не второй, а 22-рой. Нужно было просто "залить" данные.

Табельный номер - да, это верно. Но в моем случае при миграции табельные номера не перенеслись, а полных тезок в одном подразделении нет, по этому было принято решение использовать ФИО.
3. Vinzor 91 02.03.24 19:26 Сейчас в теме
Проактивно можно получить данные в СФР.
Оставьте свое сообщение