arefaste/1C_Forums huggingface dataset:
Пауза
Теги: 1С,пауза,sleep

Предоставляет функционал паузы в 1С, длительностью до 20 секунд

# Код реализации

```1c
Функция Ожидать(ВремяОжиданияВСекундах) Экспорт

    Если ВремяОжиданияВСекундах<> 0 Тогда

        НастройкиПрокси = Новый ИнтернетПрокси(Ложь);
        НастройкиПрокси.НеИспользоватьПроксиДляЛокальныхАдресов = Истина;
        НастройкиПрокси.НеИспользоватьПроксиДляАдресов.Добавить("127.0.0.0");

        Попытка
            Замыкание = Новый HTTPСоединение(
                "127.0.0.0",,,,НастройкиПрокси,
                ВремяОжиданияВСекундах);
            Замыкание.Получить(Новый HTTPЗапрос());
        Исключение
            Возврат Неопределено;
        КонецПопытки;

    КонецЕсли;

КонецФункции
```

# Примечания

- Что-то не понятно на какое время расчитан эта функция. Какой смысл в установке времени ожидания, если после попадания в исключение будет приведено к 0?

- (1) Ruizave, исправлено) в таком варианте должно стать лучше

- Работает не всегда и до 20 секунд

- (3) PowerBoy, "работает не всегда" имеется в виду что бывают сбои? или что не при всех условиях работает? По поводу "до 20 секунд" вы абсолютно правы. Я этого не учел. Видимо, для более длительных операций придется по старинке нагружать 1С
 ДатаОкончания = ТекущаяДата() + ВремяОжиданияВСекундах;
 
 Пока ТекущаяДата() < ДатаОкончания Цикл
	 
 КонецЦикла;

- (4) Эльдар Мингалиев, Можно совместить:
Функция Ожидать(ВремяОжидания) Экспорт
    ТекВремя = ТекущаяДата();
	Пока ТекущаяДата() < ТекВремя + ВремяОжидания Цикл
	   ОжидатьДо20(ВремяОжидания-(ТекущаяДата()-ТекВремя));
    КонецЦикла;
    Возврат Истина;
КонецФункции

Функция ОжидатьДо20(ВремяОжидания) 
    
    Если ВремяОжидания <> 0 Тогда
        
        НастройкиПрокси = Новый ИнтернетПрокси(Ложь);
        НастройкиПрокси.НеИспользоватьПроксиДляЛокальныхАдресов = Истина;
        НастройкиПрокси.НеИспользоватьПроксиДляАдресов.Добавить("127.0.0.0");
        
        Попытка
            Loopback = Новый HTTPСоединение(
                "127.0.0.0",,,,НастройкиПрокси,
                ВремяОжидания);
            Loopback.Получить(Новый HTTPЗапрос());
			Возврат Истина;
        Исключение
            Возврат Ложь;
        КонецПопытки;
        
    КонецЕсли;
    
КонецФункции
Сократить лидирующие нули
Теги: 1С,Сокращение,Строка,Лидирующие нули,Убрать нули

Убирает лидирующие нули в строке без пробелов

# Код реализации

```1c
Функция УбратьЛидирующиеНули(СокращаемаяСтрока)

		Возврат СтрЗаменить(СокрЛ(СтрЗаменить(СокращаемаяСтрока,"0"," "))," ","0");

КонецФункции
```
Есть реквизит у объекта
Теги: 1С

# Код реализации

```1c
Функция ЕстьРеквизитУОбъекта(Объект, ИмяРеквизита) Экспорт

	СлучайноеЗначение= Новый УникальныйИдентификатор();
    Буфер = Новый Структура(ИмяРеквизита, СлучайноеЗначение);
    ЗаполнитьЗначенияСвойств(Буфер, Объект);
    Возврат Буфер[ИмяРеквизита] <> СлучайноеЗначение;

КонецФункции
```
Убрать лишние символы из строки
Теги: 1С

Возвращает строку, состоящую только из цифр и символов русского и английского алфавита

# Код реализации

```1c
Функция УбратьЛишниеСимволыИзСтроки(Строка) Экспорт
	РезультирующаяСтрока = "";
	Для н = 1 По СтрДлина(Строка) Цикл
		Если (КодСимвола(Строка, н) >= 48 И КодСимвола(Строка, н) <= 57)
			ИЛИ (КодСимвола(Строка, н) >= 65 И КодСимвола(Строка, н) <= 90)
			ИЛИ (КодСимвола(Строка, н) >= 97 И КодСимвола(Строка, н) <= 122)
			ИЛИ (КодСимвола(Строка, н) >= 1040 И КодСимвола(Строка, н) <= 1103) Тогда
			РезультирующаяСтрока = РезультирующаяСтрока + Сред(Строка, н, 1);
		КонецЕсли;
	КонецЦикла;
	Возврат РезультирующаяСтрока;
КонецФункции
```

# Примечания

- Мне не нравится, что каждый раз идет получение кода символа - нарушение принципа DRY

- для скорости, красоты  кода, удобочитаемости (хотя по скорости это мизер) я бы написал вот так:
Функция УбратьЛишниеСимволыИзСтроки(Строка) Экспорт
РезультирующаяСтрока = "";
длина = СтрДлина(Строка);
Для н = 1 По  длина Цикл
Код = КодСимвола(Строка, н);
Если (Код >= 48 И Код ⇐ 57)
ИЛИ (Код >= 65 И Код ⇐ 90)
ИЛИ (Код >= 97 И Код ⇐ 122)
ИЛИ (Код >= 1040 И Код ⇐ 1103) Тогда
РезультирующаяСтрока = РезультирующаяСтрока + Сред(Строка, н, 1);
КонецЕсли;
КонецЦикла;
Возврат РезультирующаяСтрока;
КонецФункции
Загрузка данных из Excel
Теги: 1С,Excel,Эксель

# Код реализации

```1c
&НаСервере
Функция ПолучитьТЗДляНестандарта()
	Результат = Новый ТаблицаЗначений;
	Результат.Колонки.Добавить("Артикул", Новый ОписаниеТипов("Строка", ,Новый КвалификаторыСтроки(0, ДопустимаяДлина.Переменная)));
	Результат.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("Строка", ,Новый КвалификаторыСтроки(0, ДопустимаяДлина.Переменная)));
	Результат.Колонки.Добавить("Характеристика", Новый ОписаниеТипов("Строка", ,Новый КвалификаторыСтроки(0, ДопустимаяДлина.Переменная)));
	Результат.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(0, 0, ДопустимыйЗнак.Любой)));
	Результат.Колонки.Добавить("ЕдИзм", Новый ОписаниеТипов("Строка", ,Новый КвалификаторыСтроки(0, ДопустимаяДлина.Переменная)));
	Результат.Колонки.Добавить("Цена", Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(0, 0, ДопустимыйЗнак.Любой)));
	Результат.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(0, 0, ДопустимыйЗнак.Любой)));
	Возврат Результат;
КонецФункции

&НаКлиенте
Процедура Расш1_ЮКОЗ_ЗагрузитьНестандартПосле(Команда)

	Результат = ПолучитьТЗДляНестандарта();

	Режим = РежимДиалогаВыбораФайла.Открытие;
	ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
	ДиалогОткрытияФайла.ПолноеИмяФайла = "";
	Фильтр = "Excel файлы(*.xls;*.xlsx)|*.xls;*.xlsx";
	ДиалогОткрытияФайла.Фильтр = Фильтр;
	ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
	ДиалогОткрытияФайла.Заголовок = "Выберите файл";

	Если ДиалогОткрытияФайла.Выбрать() Тогда

		Попытка
			Эксель = Новый COMОбъект("Excel.Application");
		Исключение
			Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!");
			Возврат;
		КонецПопытки;

		Книга = Эксель.WorkBooks.Open(ДиалогОткрытияФайла.ПолноеИмяФайла);
		Лист = Книга.WorkSheets(1);

		НомерСтроки = 2;

		Пока НЕ ПустаяСтрока(Лист.Cells(НомерСтроки, 1).Value) Цикл

			НоваяСтрока = Результат.Добавить();
			НоваяСтрока.Артикул	= СокрЛП(Лист.Cells(НомерСтроки,1).Value);
			НоваяСтрока.Номенклатура	= СокрЛП(Лист.Cells(НомерСтроки,2).Value);
			НоваяСтрока.Характеристика	= СокрЛП(Лист.Cells(НомерСтроки,3).Value);
			НоваяСтрока.Количество	= СокрЛП(Лист.Cells(НомерСтроки,4).Value);
			НоваяСтрока.ЕдИзм	= СокрЛП(Лист.Cells(НомерСтроки,5).Value);
			НоваяСтрока.Цена	= СокрЛП(Лист.Cells(НомерСтроки,6).Value);
			НоваяСтрока.Сумма	= СокрЛП(Лист.Cells(НомерСтроки,7).Value);

			Если НЕ ЗначениеЗаполнено(НоваяСтрока.Номенклатура) Тогда
				ВызватьИсключение "В строке №" + НомерСтроки + " не заполнено наимевание номенклатуры. Загрузка прервана!";
				Возврат;
			КонецЕсли;

			НомерСтроки = НомерСтроки + 1;

		КонецЦикла;

		Эксель.Application.Quit();

	КонецЕсли;

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

# Примечания

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

# Код реализации

```1c
Рисунок = Шапка.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Рисунок.Верх = 4;
Рисунок.Высота = 22;
Рисунок.Ширина = 95;
Рисунок.Лево = 45;
Рисунок.Линия = Новый Линия(ТипЛинииРисункаТабличногоДокумента.НетЛинии,-1);
Карт = БиблиотекаКартинок.ВашаКартинка;
Рисунок.Картинка = Карт;
```
Удалить элемент массива
Теги: 1С

# Код реализации

```1c
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ВидыВремениВЗачетНормыСуммированногоУчета, ОбщегоНазначенияКлиентСервер.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.НеявкиПоНевыясненнымПричинам"));
```
Структура отчета СКД
Теги: 1С,СКД

Программное создание структуры отчета на СКД

# Код реализации

```1c
ТекНастройкиКомпоновщика =КомпоновщикНастроек.Настройки;
ТекНастройкиКомпоновщика.Структура.Очистить();

 //добавить группировку


ГруппировкаПоСкладу = ТекНастройкиКомпоновщика.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
ГруппировкаПоСкладу.Имя = "Склад";
ГруппировкаПоСкладу.Использование = Истина;

 //созданная группировка по полю "Склад"

ПолеГруппировкиСклад = ГруппировкаПоСкладу.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
ПолеГруппировкиСклад.Использование      = Истина;
ПолеГруппировкиСклад.Поле               = Новый ПолеКомпоновкиДанных("Склад");
ПолеГруппировкиСклад.ТипГруппировки = ТипГруппировкиКомпоновкиДанных.Иерархия;
ПолеГруппировкиСклад.ТипДополнения      = ТипДополненияПериодаКомпоновкиДанных.БезДополнения;

 //добавить выводимые поля в группировке: склад и количество остаток для данной группировки

ВыбранноеПоле = ГруппировкаПоСкладу.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("Склад");
ВыбранноеПоле = ГруппировкаПоСкладу.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("КоличествоОстаток");

 //добавим детальные записи как подгруппу в "Склад". Все отличие только в том, что нет группировки

ДетальныеЗаписи = ГруппировкаПоСкладу.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
ДетальныеЗаписи.Имя = "Детальные";
ДетальныеЗаписи.Использование = Истина;
 //добавить выводимые поля в детальных записях: Номенклатуру и количество остаток

ВыбранноеПоле = ДетальныеЗаписи.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("Номенклатура");
ВыбранноеПоле = ДетальныеЗаписи.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("КоличествоОстаток");
```
Записать текст в файл
Теги: 1С,Работа с файлами,Файл

Сохраняет строку в текстовый файл.

# Код реализации

```1c
&НаКлиенте
Процедура ЗаписатьТекстовыйФайл(ИмяФайла, Текст)

	ТекстовыйФайл = Новый ТекстовыйДокумент;

    ТекстовыйФайл.УстановитьТекст(Текст);

	//ТекстовыйФайл.ДобавитьСтроку("");

    ТекстовыйФайл.Записать(ИмяФайла,
        КодировкаТекста.UTF8
    );

КонецПроцедуры
```
Прочитать текст из файла
Теги: 1С,Работа с файлами,Файл

Загружает строку из текстового файла.

# Код реализации

```1c
&НаКлиенте
Функция ПрочитатьТекстовыйФайл(ИмяФайла)

	ТекстовыйФайл = Новый ТекстовыйДокумент;

    ТекстовыйФайл.Прочитать(ИмяФайла,
        КодировкаТекста.UTF8
    );

	Возврат ТекстовыйФайл.ПолучитьТекст();

КонецФункции
```
Запуск внешнего приложения программно
Теги: 1С,УФ

Выполняет запуск внешнего процесса, с оповещением и ожиданием результата

# Код реализации

```1c
&НаКлиенте
Процедура КомандаВыполнитьПрограмму(Команда)

	СтрокаЗапуска = "C:\Application.exe";

	НачатьЗапускПриложения(Новый ОписаниеОповещения("НачатьЗапускПриложенияЗавершение", ЭтотОбъект), СтрокаЗапуска,, Истина);

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

&НаКлиенте
Процедура НачатьЗапускПриложенияЗавершение(КодВозврата, ДополнительныеПараметры) Экспорт

    //Вставить обработку завершения выполнения

КонецПроцедуры
```
Диалог выбора каталога
Теги: 1С,каталог

# Код реализации

```1c
 Режим = РежимДиалогаВыбораФайла.ВыборКаталога;
ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытия.Каталог = "";
ДиалогОткрытия.МножественныйВыбор = Ложь;
ДиалогОткрытия.Заголовок = "Выберите каталог";

Если ДиалогОткрытия.Выбрать() Тогда
	ПутьККаталогу = ДиалогОткрытия.Каталог;
КонецЕсли;
```
Поместить текст в буфер обмена
Теги: 1С,Буфер обмена

Устанавливает текст в буфер обмена

# Код реализации

```1c
Процедура УстановитьТекстВБуферОбмена(Текст) Экспорт
  #Если Клиент Тогда
    COMОбъект = Новый COMОбъект("htmlfile");
    COMОбъект.ParentWindow.ClipboardData.SetData("Text", Текст);
  #КонецЕсли
КонецПроцедуры
```
Шаблон внешней печатной формы
Теги: 1С,БСП

Шаблон внешней печатной формы

# Код реализации

```1c
Функция СведенияОВнешнейОбработке() Экспорт

	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();

	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();

	ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
	ПараметрыРегистрации.ВерсияБСП = "2.1.3.2";
	ПараметрыРегистрации.Вставить("Версия", "1.0");
	//ПараметрыРегистрации.Вставить("Информация", "");

	ПараметрыРегистрации.Назначение.Добавить("Документ.ВедомостьНаВыплатуЗарплатыПеречислением");
	//ПараметрыРегистрации.Назначение.Добавить("Документ.*"); // все документы

	НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
	НоваяКоманда.Представление = Метаданные().Представление();   //Синоним
	НоваяКоманда.Идентификатор = Метаданные().ПолноеИмя();   //ПолноеИмя
	НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
	НоваяКоманда.Модификатор = "ПечатьMXL"; // Обязательно

	//НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
	//НоваяКоманда.Представление = Метаданные().Представление();
	//НоваяКоманда.Идентификатор = Метаданные().ПолноеИмя();
	//НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовКлиентскогоМетода();
	//
	//НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
	//НоваяКоманда.Представление = Метаданные().Представление();
	//НоваяКоманда.Идентификатор = Метаданные().ПолноеИмя();
	//НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();

	Возврат ПараметрыРегистрации;

КонецФункции

// Формирует печатные формы
//
// Параметры:
//  МассивОбъектов  - Массив    - ссылки на объекты, которые нужно распечатать;
//  КоллекцияПечатныхФорм - ТаблицаЗначений - сформированные табличные документы
//                                            (выходной параметр).
//  ОбъектыПечати         - СписокЗначений  - значение      - ссылка на объект;
//                                            представление - имя области в которой был выведен объект
//                                            (выходной параметр);
//  ПараметрыВывода       - Структура       - дополнительные параметры сформированных табличных документов
//                                            (выходной параметр);
//
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

	УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, Метаданные().ПолноеИмя(), НСтр(Метаданные().Представление()),
	ПечатьСписокПеречислений(МассивОбъектов, ОбъектыПечати));

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

Функция ПечатьСписокПеречислений(МассивОбъектов, ОбъектыПечати)

	ТабличныйДокумент = Новый ТабличныйДокумент;
	ТабличныйДокумент.КлючПараметровПечати = Метаданные().ПолноеИмя();

	Макет = ПолучитьМакет("ПФ_MXL_СписокПеречисленийНаЛицевыеСчета");

	// получаем данные для печати
	ВыборкаШапок = ВыборкаДляПечатиШапки(МассивОбъектов);
	ВыборкаСтрок = ВыборкаДляПечатиТаблицы(МассивОбъектов);

	ПервыйДокумент = Истина;

	Возврат ТабличныйДокумент;

КонецФункции
```
Заполнить первоначальные значения в форме (Организация)
Теги: 1С,ЗУП 3

Заполнить первоначальные значения в форме (Организация) в ЗУП 3

# Код реализации

```1c
Процедура ПриСозданииНаСервере

	ЗначенияДляЗаполнения = Новый Структура("Организация",
	"Объект.Организация");
	ЗарплатаКадры.ЗаполнитьПервоначальныеЗначенияВФорме(ЭтаФорма, ЗначенияДляЗаполнения);

КонецПроцедуры
```
Преобразовать строку в число
Теги: 1С,ЗУП 3

Преобразовать строку в число в ЗУП 3

# Код реализации

```1c
// Преобразует исходную строку в число без вызова исключений.
//
// Параметры:
//   Значение - Строка - Строка, которую необходимо привести к числу.
//                       Например, "10", "+10", "010", вернет 10;
//                                 "(10)", "-10",вернет -10;
//                                 "10,2", "10.2",вернет 10.2;
//                                 "000", " ", "",вернет 0;
//                                 "10текст", вернет Неопределено.
//
// Возвращаемое значение:
//   Число, Неопределено - Полученное число, либо Неопределено, если строка не является числом.
//

ВведеннаяОчередность = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(СтрокаТаблицы.ПредставлениеОчередности);
```
Преобразовать строку в дату
Теги: 1С,ЗУП 3

Преобразовать строку в дату в ЗУП 3

# Код реализации

```1c
// Преобразует исходную строку в дату.
//
// Параметры:
//  Значение - Строка - Строка, которую необходимо привести к дате.
//                      Формат даты должен быть в виде "ДД.ММ.ГГГГ" или "ДД/ММ/ГГ" или "ДД-ММ-ГГ",
//                      Например, "23.02.1980" или "23/02/80".
//
// Возвращаемое значение:
//  Дата - полученная дата.
//
Для Каждого СтрокаТаблицы Из ЗагружаемыеДанные Цикл

		СтрокаСотрудник = Сотрудники.Добавить();
		СтрокаСотрудник.Идентификатор 	= СтрокаТаблицы.Идентификатор;
		СтрокаСотрудник.ДатаНачала 		= СтроковыеФункцииКлиентСервер.СтрокаВДату(СтрокаТаблицы.ДатаНачала);
		СтрокаСотрудник.ДатаОкончания 	= СтроковыеФункцииКлиентСервер.СтрокаВДату(СтрокаТаблицы.ДатаОкончания);

КонецЦикла;
```
Удалить префикс объекта и лидирующие нули (ЗУП 3)
Теги: 1С,ЗУП 3

Удалить префикс объекта и лидирующие нули в ЗУП 3

# Код реализации

```1c
// Удаляет префикс информационной базы и префикс организации из переданной строки НомерОбъекта.
// Переменная НомерОбъекта должна соответствовать шаблону: ООГГ-ХХХ...ХХ или ГГ-ХХХ...ХХ, где:
//    ОО - префикс организации;
//    ГГ - префикс информационной базы;
//    "-" - разделитель;
//    ХХХ...ХХ - номер/код объекта.
//
// Пример:
//    УдалитьПрефиксыИзНомераОбъекта("0ФГЛ-000001234", Истина, Истина) = "000001234"
//    УдалитьПрефиксыИзНомераОбъекта("0ФГЛ-000001234", Ложь, Истина)   = "Ф-000001234"
//    УдалитьПрефиксыИзНомераОбъекта("0ФГЛ-000001234", Истина, Ложь)   = "ГЛ-000001234"
//    УдалитьПрефиксыИзНомераОбъекта("0ФГЛ-000001234", Ложь, Ложь)     = "ФГЛ-000001234"

ДокПрием.НомерДок = ПрефиксацияОбъектовКлиентСервер.УдалитьПрефиксыИзНомераОбъекта(СокрЛП(Объект.Номер), Истина, Истина);


// Получает номер документа для вывода на печать; из номера удаляются префиксы и лидирующие нули.
// Функция:
// отбрасывает префикс организации,
// отбрасывает префикс информационной базы (опционально),
// отбрасывает пользовательские префиксы (опционально),
// удаляет лидирующие нули в номере объекта.

ДокПрием.НомерДок = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(СокрЛП(Объект.Номер), Истина, Истина);
```
Склонение ФИО
Теги: 1С,ЗУП 3

Просклонять ФИО в ЗУП 3

# Код реализации

```1c
РезультатСклонения = "";

Если ФизическиеЛицаЗарплатаКадры.Просклонять(Строка(Руководитель), 3, РезультатСклонения, Руководитель.Пол) Тогда
					Шапка.Параметры.ФИОРуководителя = РезультатСклонения
КонецЕсли;
```
Фамилия инициалы
Теги: 1С,ЗУП 3

Получить фамилию инициалы (Фамилия ИО) в ЗУП 3

# Код реализации

```1c
ДанныеПечати.ФИОРуководителяСокращенное = ФизическиеЛицаЗарплатаКадрыКлиентСервер.ФамилияИнициалы(ДанныеДляПечатиСотрудники.ФизическоеЛицо)
```
Инициалы фамилия
Теги: 1С,ЗУП 3

Получить инициалы фамилию (ИО Фамилия) в ЗУП 3

# Код реализации

```1c
ДанныеПечати.ФИОРуководителяСокращенное = ФизическиеЛицаЗарплатаКадры.РасшифровкаПодписи(ДанныеФИО);
```
Ответственные организации
Теги: 1С,ЗУП 3

Получить ответственных организации в ЗУП 3

# Код реализации

```1c
ЗапрашиваемыеЗначения = Новый Структура;
	ЗапрашиваемыеЗначения.Вставить("Организация", Объект.Документ.Организация);

	ЗапрашиваемыеЗначения.Вставить("Руководитель");
	ЗапрашиваемыеЗначения.Вставить("ДолжностьРуководителя");

	ЗапрашиваемыеЗначения.Вставить("ГлавныйБухгалтер");

	ЗапрашиваемыеЗначения.Вставить("РуководительКадровойСлужбы");
	ЗапрашиваемыеЗначения.Вставить("ДолжностьРуководителяКадровойСлужбы");

	ДатаВЗапросОтветственных = Объект.Документ.Дата;

	//!!! ПОЗВОЛЯЕТ ПОЛУЧИТЬ ДАННЫЕ ТОЛЬКО НА ДАТУ СЕАНСА
	ЗарплатаКадры.ПолучитьЗначенияПоУмолчанию(ЗапрашиваемыеЗначения, ДатаВЗапросОтветственных);

	ФИОГлБух = "";

	Если ФизическиеЛицаЗарплатаКадры.Просклонять(ЗапрашиваемыеЗначения.ГлавныйБухгалтер.Наименование, 3, ФИОГлБух,
		?(ЗапрашиваемыеЗначения.ГлавныйБухгалтер.Пол = Перечисления.ПолФизическогоЛица.Мужской, 1, 2)) Тогда

		//Область3.Параметры.ФИОГлБух = ФИОГлБух;

	КонецЕсли;

	ОбластьМакетаПриказ.Параметры.ФИОГлавныйБухгалтер					= ФизическиеЛицаЗарплатаКадрыКлиентСервер.ФамилияИнициалы(ФИОГлБух);
	ОбластьПодписиРуководитель.Параметры.ФИО 								= ФизическиеЛицаЗарплатаКадры.РасшифровкаПодписи(ЗапрашиваемыеЗначения.Руководитель);
	ОбластьПодписиРуководитель.Параметры.Должность 						= ЗапрашиваемыеЗначения.ДолжностьРуководителя;


	//ОТВЕТСТВЕННЫЕ ЛИЦА НА ЗАДАННУЮ ДАТУ

	ДатаВЗапросОтветственных = ДАТА(2019,09,02);

	ЗапрашиваемыеЗначения = СведенияОбОтветственныхЛицах.СведенияОбОтветственныхЛицах(Выборка.Организация, "Руководитель,ДолжностьРуководителя", ДатаВЗапросОтветственных);
```
Сведения об организации
Теги: 1С,ЗУП 3

Получить сведения об организации в ЗУП 3

# Код реализации

```1c
&НаСервере
Процедура СведенияОбОрганизацииНаСервере()

	//Без передачи списка показателей возвращаются все доступные значения показатели
	//Если нужно значение конкретного показателя см. подробнее ЗарплатаКадрыБазовый.ПолучитьСведенияОбОрганизации

	СведенияОбОрганизации = ЗарплатаКадрыБазовый.ПолучитьСведенияОбОрганизации(Объект.Организация,ТекущаяДата(), );

КонецПроцедуры
```
Работающие сотрудники
Теги: 1С,ЗУП 3

Получить работающих сотрудников по заданным параметрам отбора

# Код реализации

```1c
//Пример функция для получения актуальных работающих сотрудников за период
//Возвращается таблица значений

Функция ПроверитьНаличиеПодработки(Сотрудник, ДатаНазначения)

	СтруктураДанных = Новый Структура();

	СтруктураДанных.Вставить("ДатаНачала",);
	СтруктураДанных.Вставить("ДатаОкончания",);
	СтруктураДанных.Вставить("РазмерОклада",);

	ПараметрыПолучения = ПолучитьПараметры();
	ПараметрыПолучения.Организация = ЭтотОбъект.Организация;

	//Если ЗначениеЗаполнено(Подразделение) Тогда
	//	ПараметрыПолучения.Подразделение = Подразделение;
	//КонецЕсли;

	//Если ВключаяУволенныхНаНачалоПериода Тогда
	//	ПараметрыПолучения.ВключаяУволенныхНаНачалоПериода = Истина;
	//КонецЕсли;

	ПараметрыПолучения.НачалоПериода = НачалоМесяца(ДатаНазначения);
	ПараметрыПолучения.ОкончаниеПериода = КонецМесяца(ДатаНазначения);
	ПараметрыПолучения.ПодработкиРаботниковПоТрудовымДоговорам = Истина;
	ПараметрыПолучения.РаботникиПоДоговорамГПХ = Ложь;

	// ОТБОР ПО ВИДУ ЗАНЯТОСТИ РАБОТАЕТ ТОЛЬКО НАЧИНАЯ С РЕДАКЦИИ 3.1.7
	//ЗарплатаКадрыОбщиеНаборыДанных.ДобавитьВКоллекциюОтбор(
	//			ПараметрыПолучения.Отборы, "ВидЗанятости", "=", Перечисления.ВидыЗанятости.Подработка);

	ЗарплатаКадрыОбщиеНаборыДанных.ДобавитьВКоллекциюОтбор(
				ПараметрыПолучения.Отборы, "ФизическоеЛицо", "=", Сотрудник.ФизическоеЛицо);

	ПараметрыПолучения.КадровыеДанные = "Сотрудник,ФизическоеЛицо,Подразделение,Должность,ДолжностьПоШтатномуРасписанию,КоличествоСтавок,ВидЗанятости,ДатаПриема,ДатаУвольнения,ГрафикРаботы";

	ТаблицаСотрудников = КадровыйУчет.СотрудникиОрганизации(Истина, ПараметрыПолучения);

	Возврат ТаблицаСотрудников;

КонецФункции


&НаСервере
Функция ПолучитьПараметры()
	Возврат КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц();
КонецФункции
```
Паспортные данные физического лица
Теги: 1С,ЗУП 3

Получить паспортные данные физического лица

# Код реализации

```1c
ДанныеФизЛица = КадровыйУчет.ДокументыФизическихЛиц(ВыборкаСтрок.ФизическоеЛицо, Истина);

ОбластьМакетаСтрока.Параметры.Паспорт = "" + ДанныеФизЛица[0].ВидДокумента + ", "
+ ДанныеФизЛица[0].Серия + ", " + ДанныеФизЛица[0].Номер + ", выдан: " + ДанныеФизЛица[0].КемВыдан;
```
Основной сотрудник физ. лица
Теги: 1С,ЗУП 3

Получить основного сотрудника физического лица

# Код реализации

```1c
&НаСервере
Процедура УстановитьОсновногоСотрудника(ВыводитьСообщения = Истина)

   Объект.ОсновнойСотрудник = КадровыйУчетРасширенный.ОсновнойСотрудникФизЛица(Объект.ФизическоеЛицо, Объект.Организация, Объект.ДатаНачала, ВыводитьСообщения);

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