arefaste/1C_Forums huggingface dataset:
Добрый день!
Собственно вопрос в теме.
Более развернуто: из типового отчета хочу сделать внешний. Перенесена СхемаКомпоновкиДанных, макет табличной части и ряд функций и процедур.
Формы отчета нет. В модуле объекта процедура "ПриКомпоновкеОтчета", в которой следующий код:

```1c
    Попытка
    КомпоновщикНастроек = ЭтотОбъект.КомпоновщикНастроек;
    ....
    Исключение

    Инфо = ИнформацияОбОшибке();
    ВызватьИсключение НСтр("ru = 'В настройку отчета Т-51 внесены критичные изменения. Отчет не будет сформирован.';
    |en = 'Critical changes have been made to T-51 report setting. Cannot generate the report.'")
    + " " + ПодробноеПредставлениеОшибки(Инфо);

    КонецПопытки;
```

Собственно тут все и заканчивается, потому что при попытке выполнить

```1c
    КомпоновщикНастроек = ЭтотОбъект.КомпоновщикНастроек;
```

отчет сваливается в ошибку "Поле объекта недоступно для записи (КомпоновщикНастроек)"
---
Просто уберите эту строку.

У отчета уже есть поле "КомпоновщикНастроек". В модуле объекта к нему можно обратиться как "КомпоновщикНастроек", так и "ЭтотОбъект.КомпоновщикНастроек". Выходит, Вы пытаетесь присвоить полю самого себя.
---
Просто уберите эту строку.

У отчета уже есть поле "КомпоновщикНастроек". В модуле объекта к нему можно обратиться как "КомпоновщикНастроек", так и "ЭтотОбъект.КомпоновщикНастроек". Выходит, Вы пытаетесь присвоить полю самого себя.
---
Спасибо, добрый человек! Сработало!
---
помогите пожалуйста

```1c
    Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    Если Истина Тогда
    ПользовательАвтор = Пользователи.ТекущийПользователь();

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | СотрудникиПользователя.Сотрудник КАК Сотрудник
    |ИЗ
    | РегистрСведений.СотрудникиПользователя КАК СотрудникиПользователя
    |ГДЕ
    | СотрудникиПользователя.Пользователь = &Пользователь";

    Запрос.УстановитьПараметр("Пользователь", ПользовательАвтор);

    РезультатЗапроса = Запрос.Выполнить();
    Сотрудники = РезультатЗапроса.Выгрузить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    //
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    АвторПользователя = ВыборкаДетальныеЗаписи.Сотрудник;
    КонецЦикла;
    //ПараметрСотрудники = Новый ПараметрКомпоновкиДанных("Сотрудники");
    Параметры = КомпоновщикНастроек.Настройки.ПараметрыДанных;
    Параметры.УстановитьЗначениеПараметра("Сотрудники", АвторПользователя);
    //К КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра(ПараметрСотрудники, Сотрудники);
    //КомпоновкаДанныхКлиентСервер.УстановитьПараметр(КомпоновщикНастроек, "Сотрудники", Сотрудники);
    КонецЕсли;
    КонецПроцедуры
```
---
Поле объекта недоступно для записи Сотрудники
Пишу отчет не стандартной формы на СКД, похожий на журнал ордер по дням.
В нем нужно сделать расшифровку в карточку счета.
Данные выводиться в виде таблицы. В колонках счета, в строках период.
Пытаюсь для ресурса "СуммаОборотДт" добавить макет имеющий "ПараметрРасшифровки" содержащий счет.
Получаю ошибку
"Поле "Счет Кор." не может быть использовано в группировке "Итог""
Пробовал через:
ВычислитьВыражение("КорСчет","КорСчет");
ВычислитьВыражение("КорСчет",,"КорСчет");
ВычислитьВыражение("КорСчет","КорСчет","КорСчет");
Вычислить("КорСчет","КорСчет");
ошибка осталось.
Есть идеи как получить счет в расшифровке СКД?
---
Проблему решил путем:
1. Добавил поле в Вычисляемые поля "КорСчетКВыводу"
2. Указанное поле указал как ресурс Минимум(КорСчетКВыводу).
3. Добавил указанный ресурс в ПараметрРасшифровки
---
добавил макет, добавил параметр расшифровки ну и конечно добавил свой обработчик этой расшифровки. так?

или ты хочешь чтобы система сама поняла что тебе нужно и карточку счета с нужными параметрами вызвала?
---
Мне б ошибку СКД устранить, просто не формируется с этими выражениями. Обработчик расшифровки сделать легко, поэтому пока не писал, нужно же данные сначала получить.
---
если ты суешь системе не то, что она ждет по умолчанию, то не понятно что ты хочешь. не делай макет - не будет ошибки
---
Мне нужна расшифровка по группировке "КорСчет"
В карточке счета с отбором по Счету и КорСчету за период ЖО(журнала ордера).
Где взять кор. счет из колонки ЖО?
---
Проблему решил путем:
1. Добавил поле в Вычисляемые поля "КорСчетКВыводу"
2. Указанное поле указал как ресурс Минимум(КорСчетКВыводу).
3. Добавил указанный ресурс в ПараметрРасшифровки
Есть периодический регистр сведений без регистратора. Требуется, чтобы при открытии формы списка автоматически устанавливался бы некий отбор по дате. В каком обработчике события лучше прописать программное включение отбора - в форме списка ПриСозданииНаСервере() или ПриОткрытии()? Или где-то ещё?
---
ПриСозданииНаСервере() - данные будут сформированы на сервере и приедут на Клиент.
---
ПриСозданииНаСервере() - данные будут сформированы на сервере и приедут на Клиент.
Я пробую обойти движения документа, и по количеству определить регистры. Но количество всегда равно 0. Почему?

```1c
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

    Док = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();

    Для Каждого Рег Из Док.Движения Цикл

    Если Рег.Количество() <> 0 Тогда
    МассивРегистров.Добавить(Строка(Рег));
    КонецЕсли;

    КонецЦикла;

    КонецЦикла;
```
---
```1c
    Док = Строка.Ссылка.ПолучитьОбъект();

    Для Каждого Рег Из Док.Движения Цикл
    Рег.Прочитать() ;
    Сообщить(Рег.Количество());
    Если Рег.Количество() <> 0 Тогда
    МассивРегистров.Добавить(Строка(Рег));
    КонецЕсли;

    КонецЦикла;
```
---
какой тип значения в Рег ?
---
Так Набор же записей определенноно регистра...
---
```1c
    Для Каждого Рег Из Док.Движения Цикл
    Рег.Прочитать() ;
    Для каждого Запись Из Рег Цикл
    Сообщить(Запись.ВАШРЕКВИЗИТ);
    КонецЦикла;

    КонецЦикла;
```
---
```1c
    Док = Строка.Ссылка.ПолучитьОбъект();

    Для Каждого Рег Из Док.Движения Цикл
    Рег.Прочитать() ;
    Сообщить(Рег.Количество());
    Если Рег.Количество() <> 0 Тогда
    МассивРегистров.Добавить(Строка(Рег));
    КонецЕсли;

    КонецЦикла;
```
---
в 7.7. такого не было
---
Может документ то не проведен? ;-)
---
Однако, код в (1) поменяли на более вменяемый и таки да: без прочтения набора записей проверять наличие записей - нонсенс.
---
неверное обращение к Количеству()
Уважаемые гуру, очень нужна помощь.
Есть запрос следующего вида, который выводит данные
Код
ВЫБРАТЬ
   PRAJS_LIST.KOD_USLUGI.KOD_PODGRUPPY_USLUGI.KOD_GRUPPY_USLUG.KOD_GRUPPY_USLUG КАК ВнутреннийКодГруппыУслуг,
   PRAJS_LIST.KOD_USLUGI.KOD_PODGRUPPY_USLUGI.KOD_GRUPPY_USLUG.NAZVANIYE_GRUPPY_USLUG КАК НазваниеГруппыУслуг,
   PRAJS_LIST.KOD_USLUGI.KOD_PODGRUPPY_USLUGI.KOD_PODGRUPPY_USLUG КАК ВнутреннийКодПодгруппыУслуг,
   PRAJS_LIST.KOD_USLUGI.KOD_PODGRUPPY_USLUGI.NAZVANIYE_PODGRUPPY_USLUG КАК НазваниеПодгруппыУслуг,
   PRAJS_LIST.KOD_USLUGI КАК ВнутреннийКодУслуги,
   PRAJS_LIST.KOD_USLUGI.NAZVANIYE_USLUGI КАК НазваниеУслуги,
   PRAJS_LIST.KASSOVYJ_KOD КАК КассовыйКодУслуги,
   PRAJS_LIST.CYENA КАК ЦенаУслуги
ИЗ
   ВнешнийИсточникДанных.MEDUCHET.Таблица.PRAJS_LIST КАК PRAJS_LIST
ГДЕ
   PRAJS_LIST.KASSOVYJ_KOD > 0
   И PRAJS_LIST.CYENA > 0
   И PRAJS_LIST.PRINTING = -1
   И PRAJS_LIST.DYEJSTVITYELNYJ = -1
   И PRAJS_LIST.RYEJTING_PRAJSA = 0
Показать полностью
Нужно добавить условие что бы в отбор не попадали данные которые не содержат в наименовании (О) и (Д)
Например PRAJS_LIST.KOD_USLUGI.NAZVANIYE_USLUG не содержит (О)
Например PRAJS_LIST.KOD_USLUGI.NAZVANIYE_USLUG не содержит (Д)

Нужно использовать оператор Подробно, но не понимаю как правильно написать, подскажите пожалуйста
---
Не ПОДРОБНО, а ПОДОБНО:

```1c
    ГДЕ
    НЕ PRAJS_LIST.KOD_USLUGI.NAZVANIYE_USLUGI ПОДОБНО "%(О)%"
    И НЕ PRAJS_LIST.KOD_USLUGI.NAZVANIYE_USLUGI ПОДОБНО "%(Д)%"
```
---
Не ПОДРОБНО, а ПОДОБНО:

```1c
    ГДЕ
    НЕ PRAJS_LIST.KOD_USLUGI.NAZVANIYE_USLUGI ПОДОБНО "%(О)%"
    И НЕ PRAJS_LIST.KOD_USLUGI.NAZVANIYE_USLUGI ПОДОБНО "%(Д)%"
```
---
после такого кода вам обязательно понадобиться защита.

вам нужно записаться на прием к Наталье Поповой
https://forum.infostart.ru/forum95/topic232186/
Назначил полные права на все объекты, что есть в 1с8, кроме документов.
Отдельной ролью для всех документов установил право "Чтение".
Формирую свой отчёт и получаю ошибку. Путём проб обнаружил что если поставить для документов ещё роль "Просмотр", то отчёт отработает нормально. Я не могу понять как связан запрос СКД с ролью для документа "Просмотр". Ведь я программно получаю данные, то есть мне нужно лишь право на чтение....Ниже скрин ошибки СКД.
Почему возникает данная ошибка?
---
Ответ очевиден: так задумано в платформе. Вот цитата из документации к платформе:
Если у пользователя отсутствует право на интерактивный просмотр объекта метаданных, то система компоновки считает недоступными все поля таблицы объекта.
---
СКД необходимо, чтобы у выводимых данных было право на просмотр. Даже если вы выводите информацию из регистра, где регистратор имеет составной тип, то у всех этих документов из составного типа должно быть право на просмотр.
---
Принципиально просмотр данных в форме не отличается от просмотра этих же данных в отчете. Поэтому и права для отчетов нужны соответствующие.
---
Я использую в запросе СКД регистр накопления "Товары на складах", а далее с его регистраторов тяну данные (регистраторы только на чтение - ошибка). Ставлю регистраторам право на "Просмотр" и в итоге успешно формируется отчёт.
Я так понимаю что "Чтение" что бы прочитать данные программно, а "Просмотр" это открыть сам документ, а так из за отчёта получается я даю право пользователю открывать формы документов и смотреть непосредственно данные их них.
У меня есть другой отчёт, который успешно вовсе сформировался, правда все данные в нем используются из регистра на который у меня фулл права.
Может кто то сможет объяснить что же такое "Просмотр" и почему запрос в СКД не исполняется без этого права на документ?
Очень хочется понять.
---
"Чтение" - это программно, а "просмотр" - интерактивно!

Если не заходит такой вариант, то выводите программно СКД через ПривилегРежим!
---
Ответ очевиден: так задумано в платформе. Вот цитата из документации к платформе:
Если у пользователя отсутствует право на интерактивный просмотр объекта метаданных, то система компоновки считает недоступными все поля таблицы объекта.
---
Спасибо большое, все понятно :)
Как Вы находите в справке такие мелочи? Поделитесь секретом)
---
В данном случае я знал, что искать. Ну а откуда у меня знание, что необходимы интерактивные права на чтение, уже и не вспомнить.
---
Понял, спасибо. Теперь и я буду знать это :)
Добрый день. Есть задачка вывести сообщение пользователю по определенным событиям. Вроде все просто. В процедуру при начале работы системы подключаем обработчик ожидания, но мне нужно чтоб при нажатии на сообщение открывалась общая форма, и вот тут у меня загвоздка. Не могу получить навигационную ссылку общей формы.

Может я в целом не верно мыслю и есть вариант как сделать это по другому, мне нужно уведомить пользователя что создан новый заказ на сайте. Пр нажатии на это сообщение он должен перейти по ссылке, ссылка передается как параметр в общую форму.
---
Да что ж такое. :-) Ну нельзя на формы ссылаться. На саму обработку можно. Просто напишите:

```1c
    АдресОбработки = "e1cib/app/Обработка.apv_РаботаССайтом";
```
---
Используйте вместо общей формы обработку. Для общей формы Вы не сможете получить навигационную ссылку.
---
```1c
    &НаКлиенте
    Процедура ВывестиСообщениеПользователям() Экспорт

    ФормаHTML = ПолучитьФорму("ОбщаяФорма.apv_ОписаниеНоменклатурыHTML",,,,);
    АдресОбработки = ПолучитьНавигационнуюСсылку(ФормаHTML);
    ПоказатьОповещениеПользователя("Новый заказ с сайта",
    АдресОбработки,
    "Создан новый заказ №ххх, менеджер неопределен!",
    БиблиотекаКартинок.Календарь,
    СтатусОповещенияПользователя.Важное);
    //Если

    КонецПроцедуры
    //-
    &После("ПриНачалеРаботыСистемы")
    Процедура apv_ПриНачалеРаботыСистемыПосле()

    //+НСС 10122019
    ПодключитьОбработчикОжидания("ВывестиСообщениеПользователям",60,Ложь);
    //-

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

Вот таким образом навигационная ссылка пустая
---
Я же указал, что нельзя получить навигационную ссылку на общую форму. Вот цитата с ИТС:
Внутренние ссылки бывают нескольких видов:
● объект информационной базы,
● реквизит объекта информационной базы,
● реквизит табличной части объекта информационной базы,
● реквизит записи регистра информационной базы,
● запись регистра информационной базы,
● отчет,
● обработка,
● раздел,
● команда раздела,
● временное хранилище;
● обсуждение системы взаимодействия.
---
ФормаHTML = ПолучитьФорму("Обработка.apv_РаботаССайтом.Форма");
АдресОбработки = ПолучитьНавигационнуюСсылку(ФормаHTML);

Ситуация не изменилась, нав. ссылка пустая
---
Да что ж такое. :-) Ну нельзя на формы ссылаться. На саму обработку можно. Просто напишите:

```1c
    АдресОбработки = "e1cib/app/Обработка.apv_РаботаССайтом";
```
---
вот ведь елки иголки, буду знать теперь, всё заработало, спасибо большое.
Добрый день.
На форме создаю и заполняю таблицу документов:

```1c
    т1.НоваяКолонка("Док", "Документ");
    ...
    д = СоздатьОбъект("Документ");
    д.ВыбратьДокументы(ДатаНач, ДатаКон);
    Пока д.ПолучитьДокумент() = 1 Цикл
    т1.НоваяСтрока();
    т1.Док = д.ТекущийДокумент();
    ...
    КонецЦикла;
```

Вопрос: почему не все документы отображаются с датой?
---
ответ - потому что :-)
документ - он и есть документ. это - агрегатный тип.
как агрегатный тип, "существующий" в виде ссылки на объект будет отображаться в СТРОКОВОМ представлении - зависит от того, как это сделано в платформе. Если документ однозначно идентифицируется номером - то ЗАЧЕМ ДАТА? а если номер не идентифицирует однозначно - нужен "уточняющий" параметр в строковом представлении - дата документа.
.
если еще не догадался, то скажу прямо: смотри в конфигураторе НУМЕРАЦИЮ документов - те которые без даты - у них стоит нумератор "по всем документам данного вида", то есть нет "в пределах года".
.
если конфига написана нормально или на основе типовых - то смотри в ГМ процедуры типа глПредставлениеДокумента и тому подобное, выцти можно через обработку "структура подчиненности" на нужные процедуры.
.
если вменяемого не найдешь - то просто поправь ТЗ для показа, колонки "вид", "номер", "дата".. или самостоятельно формируй строковое представление для показа, анализируя метаданные и параметры "нумератора"
.
и вообще можно было самому допереть - чем отличаются доки с датами и доки без дат... - посмотреть как описаны доки в конфигураторе
.
как-то так я себе представляю
---
ответ - потому что :-)
документ - он и есть документ. это - агрегатный тип.
как агрегатный тип, "существующий" в виде ссылки на объект будет отображаться в СТРОКОВОМ представлении - зависит от того, как это сделано в платформе. Если документ однозначно идентифицируется номером - то ЗАЧЕМ ДАТА? а если номер не идентифицирует однозначно - нужен "уточняющий" параметр в строковом представлении - дата документа.
.
если еще не догадался, то скажу прямо: смотри в конфигураторе НУМЕРАЦИЮ документов - те которые без даты - у них стоит нумератор "по всем документам данного вида", то есть нет "в пределах года".
.
если конфига написана нормально или на основе типовых - то смотри в ГМ процедуры типа глПредставлениеДокумента и тому подобное, выцти можно через обработку "структура подчиненности" на нужные процедуры.
.
если вменяемого не найдешь - то просто поправь ТЗ для показа, колонки "вид", "номер", "дата".. или самостоятельно формируй строковое представление для показа, анализируя метаданные и параметры "нумератора"
.
и вообще можно было самому допереть - чем отличаются доки с датами и доки без дат... - посмотреть как описаны доки в конфигураторе
.
как-то так я себе представляю
Как выполнить код внешней обработки (можно помещенной в справочник, можно просто внешней) на сервере?
Дано
Платформа: 8.3.12;
Конфа: ЗУП 2.5 (типовой, изменять нельзя);
Режим запуска: обычное приложение;
Тип базы: клиент-серверный

Необходимость: отправлять письма из 1С с сервера (почтовый сервер принимает только с машины сервера). Клиент подключается с другого компьютера через обычное приложение.

Пробовал через внешнее соединение (V83.ComConnector), но выполнив Connection.ИмяКомпьютера() убедился, что внешнее соединение выполняется на компьютере откуда оно устанавливалось.

Пробовал через Automation (V83.Application), но выполнив Connection.ИмяКомпьютера() убедился, что Automation также выполняется на этом компьютере (не удивительно).

Пробовал через Automation (V83C.Application), но тут недоступны методы менеджеров объектов (ВнешниеОбработки.Создать(...)).

Есть идеи, господа?

PS: ЗУП запускать в управляемом - не предлагать, изменять - не предлагать, подключаться по COM к другой "изменяемой" базе и выполнять отправку там - не предлагать :)
---
Ищи в общих серверных модулях аналогичную процедуру

```1c
    //ОбменДаннымиВызовСервера.ВыполнитьОбработчикВПривилегированномРежиме(Значение, Знач СтрокаОбработчика) Экспорт

    Процедура ВыполнитьОбработчикВПривилегированномРежиме(Значение, Знач СтрокаОбработчика) Экспорт

    Если ТекущийРежимЗапуска() = РежимЗапускаКлиентскогоПриложения.УправляемоеПриложение Тогда
    ВызватьИсключение НСтр("ru = 'Метод не поддерживается в режиме управляемого приложения.'");
    КонецЕсли;

    УстановитьПривилегированныйРежим(Истина);

    Выполнить(СтрокаОбработчика);

    КонецПроцедуры
```
---
Ищи в общих серверных модулях аналогичную процедуру

```1c
    //ОбменДаннымиВызовСервера.ВыполнитьОбработчикВПривилегированномРежиме(Значение, Знач СтрокаОбработчика) Экспорт

    Процедура ВыполнитьОбработчикВПривилегированномРежиме(Значение, Знач СтрокаОбработчика) Экспорт

    Если ТекущийРежимЗапуска() = РежимЗапускаКлиентскогоПриложения.УправляемоеПриложение Тогда
    ВызватьИсключение НСтр("ru = 'Метод не поддерживается в режиме управляемого приложения.'");
    КонецЕсли;

    УстановитьПривилегированныйРежим(Истина);

    Выполнить(СтрокаОбработчика);

    КонецПроцедуры
```
---
ВыполнитьОбработчикВПривилегированномРежиме Спасибо большое! Вроде пробежал глобальным поиском по "Выполнить(", но этот общий не нашел :)
---
Создать расширение с общим серверным модулем.
---
ЗУП 2.5 не сильно дружит расширениями, но плюс лови :) в описании я такого не указал. Вообще (1) идеально подходит.
День добрый!
Столкнулся с такой проблемой при расчете даты.
В обработке получаю данные с firebird за определенный период.
Т.к. дата в firebird'e хранится как число, то приходится период переводить из типа дата в тип число ((ДатаВр - ДАТА("19000101"))/86400 где ДатаВр это входящая дата) и почему-то число 43815 переводит в 18.12.2019.
То же самое число, если указать в экселе и перевести в тип дата, покажет 16.12.2019

Вопрос: КУДА делось 2 дня?
---
31.12.1899

Тут вот какая трабла - оказывается эксель считает начальную дату как 00.01.1900
В 1С выражение ДАТА("19000100") ясен пень не прокатывает, если сделать ДАТА("18991231") тогда да, все норм считается.

В общем правильный перевод числа в дату будет - ДАТА("18991231") + (ДатаВр*86400)
где ДатаВр - дата в количестве дней.
---
ДатаВр - что содержит ?
---
ДАТА("19000101")
и почему тут отнимаете 01.01.1900 г ?
---
Т.к. дата в firebird'e хранится как число,
Насколько я видел в firebirdе, там дата хранится как число, но в таком виде: 20191218, что соответствует 18.12.2019 г.
---
по сути, если вам нужно преобразовать число в дату то вам так

```1c
    ДАТА('00010101') + ДатаВр
    // ДАТА('00010101') - пустая дата
    // ДатаВр - число firebird
```
---
В (0) я ошибся. Это обратный перевод даты в число

Т.е. надо ДАТА("19000101")+(ДатаВр*86400)

Нет.
ДатаВр это входящеее значение в функцию преобразования числа в дату.
В firebird дата хранится в виде числа - дней от 01.01.1900 г.
Точно так же в экселе преобразуется число в дату. Можете сами попробовать преобразовать в экселе 43815 в дату и увидите, что это 16.12.2019 г.
Если преобразовать как Вы говорите, то получится дата - 01.01.0001 12:10:15
Т.е. просто прибавит к 01.01.0001 количество секунд 43815.
Если преобразовать ДАТА('00010101') + (ДатаВр * 86400), то получится дата 18.12.0120 0:00:00
Что тоже не верно.
---
ИМХается мне, EXCEL пустой датой считает таки 31.12.1899 00:00:00 и умножая 43815 на 86400 вы и получаете разницу в 2 дня.
Значение 18.12.2019 00:00:00 - верное.
---
31.12.1899

Тут вот какая трабла - оказывается эксель считает начальную дату как 00.01.1900
В 1С выражение ДАТА("19000100") ясен пень не прокатывает, если сделать ДАТА("18991231") тогда да, все норм считается.

В общем правильный перевод числа в дату будет - ДАТА("18991231") + (ДатаВр*86400)
где ДатаВр - дата в количестве дней.
---
Мне просто интересно, почему 2 дня прибавляется к дате?
Видимо где-то в платформе закралась ошибка преобразования даты или просто не учитываются високосные года.
Пока решил не заморачиваться и просто от получившейся даты минус 2 дня сделал.
---
а если так

```1c
    Дней = ДатаВр - ДАТА("19000101"); /// Примерно 3785754285
    ПолученнаяДата = ДАТА("19000101") + Дней ; ///Примерно 19.12.2019 14:24:00
```
---
Нет.
Должно получиться 16.12.2019 00:00:00
---
В firebird нет часов, минут, секунд. Простое число - количество дней от 01.01.1900 г.
Для обмена регистригую изменения регистра сведений (подпиской на ПриЗаписи):

```1c
    Процедура РегистрСведенийСтатусыДокументовПриЗаписи(Источник, Отказ) Экспорт

    Документ = Источник.Отбор.Документ.Значение.Ссылка;
    УзелОбмена = Константы.КонстантаУзла.Получить();
    Набор = РегистрыСведений.СтатусыДокументов.СоздатьНаборЗаписей();
    Набор.Отбор.Организация.Значение = Справочники.Организации.НайтиПоКоду("00-000100");
    Набор.Отбор.Организация.Использование = Истина;
    Набор.Отбор.Документ.Значение = Документ.Ссылка;
    Набор.Отбор.Документ.Использование = Истина;
    ПланыОбмена.ЗарегистрироватьИзменения(УзелОбмена, Набор);

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

В Отборе могу использовать только измерения Организация и Документ (должно быть строгое соответствие измерениям у которых отмечен признак "Основной отбор").
А как мне сделать, чтобы на регистрацию уходили только записи регистра с определенным с определенным статусом документа?
---
Например:

```1c
    РегистрироватьДокумент = Ложь;

    Для каждого Запись Из Источник Цикл
    Если Запись.Статус = ИскомыйСтатус Тогда
    РегистрироватьДокумент = Истина;
    Прервать;
    КонецЕсли;
    КонецЦикла;

    Если РегистрироватьДокумент Тогда
    // Ваш код регистрации
    КонецЕсли;
```
---
Документ Вы извлекаете из набора. Почему бы и не проверить сам набор записей (Источник) на наличие нужного статуса?
---
Всмысле запросом проверить? А через набор никак не получится?
---
Именно набор и проверить.
---
Например:

```1c
    РегистрироватьДокумент = Ложь;

    Для каждого Запись Из Источник Цикл
    Если Запись.Статус = ИскомыйСтатус Тогда
    РегистрироватьДокумент = Истина;
    Прервать;
    КонецЕсли;
    КонецЦикла;

    Если РегистрироватьДокумент Тогда
    // Ваш код регистрации
    КонецЕсли;
```
---
Спасибо! Работает.
---
А так нельзя:

```1c
    Документ = Источник.Отбор.Документ.Значение.Ссылка;
    Если Документ.Статус <> НужныйСтатус Тогда
    Отказ = Истина;
    Возврат;
    КонецЕсли;
```
---
Нельзя, у документа нет статуса. Он лежит в регистре
Всем доброе утро. Такой вопрос, подскажите плиз) у меня имеется расширение. Там имеется форма. у формы есть Список значений. Одно значение я добавил туда. При этом это значение не появляется. Что я делаю не так?
---
Дополнить список выбора можно еще программно, например, в процедуре ПриСозданииНаСервереПосле.
---
Где-то этот список формируется конфигурацией. Надо найти где и внести туда свои записи. Через "Вместо" с "ПродолжитьВызов"
---
ормируется конфигурацией. На программно он нигде не формируется перечисления просто указаны в списке. в других тч они добавлялись программно при начале выбора там у меня всё нормально а тут этой процедуры нет.
---
Дополнить список выбора можно еще программно, например, в процедуре ПриСозданииНаСервереПосле.
---
1