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

Нет.. на форму в поле выводится значение "Июль 2022" - тип "строка", а мне нужно, чтобы в реквизит документа записалось это значение, но с типом "Дата".
---
Функция Формат приводит значение типа дата к строке.
---
У нас на раёне столько попкорна не продают!!!
---
ща, погодь, придет ТС и все расставит на места :)
---
куда еще конкретнее?
Вы разбирались с кодом, отрабатывающем в ПриНачалеВыбора?

Если коротко, то там происходит все ровно наоборот: по значению документа ПериодНачисления строится список выбора месяцев и устанавливается строковое значение ПериодНачисленияСтрокой на форме, соответствующее значению дата в ПериодНачисления

Но вы можете не верить в это и пытаться из строкового значения получить дату.....
---
Я, наверное, плохой объясняльщик. Прошу прощения. Порядок действий такой:
1) Создаю новый документ.
2) На форме в поле выбора мне нужно выбрать период (это стандартный модуль), результат: поле заполняется значением типа "Июль 2022".
3) Заполняю остальные поля на форме документа.
4) Сохраняю, закрываю, документ записывается. Реквизит "ПериодНачисления" документа должен заполниться значением из поля формы "Июль 2022", но только с типом "Дата".

Первоначально ПериодНачисления в докумпнте не заполнено.
---
Создаю новый документ. Какой документ?
---
Ну вообще наименование документа не имеет смысла. Документ называется "Начисления и удержания" - это не типовой документ, а мною созданный.
---
я вам уже третий раз повторяю как оно работает в типовых.
Сделайте так же, не изобретайте велосипедов, особенно с получением значения Дата из строки.
посмотрите в той же ЗУП 3.1 как реализован весь механизм, вместе с регулированием и вводом текста.
---
Да, все верно. Это ЗУП 3.1. Вот разбираюсь, пока не очень получается, как работает этот механизм. В вашем ответе непонятно: что такое регулирование и ввод текста.
---
регулирование - это последовательное увеличение/уменьшение значения на заданный шаг, как правило 1.
ввод текста - возможность в поле ввода месяца ввести скажем "Май 202" и оно дополнит само до "Май 2022" и установит это значение.

если у вас уже есть ЗУП 3.1 там в любом документе, где есть реквизит "ПериодНачисления" есть этот механизм.
Его расписывать долго, но основное там:

в ПриСозданииНаСервере устанавливается значение ПериодНачисления и по нему формируется значение ПериодНачисленияСтрокой.

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

устанавливать значение "ПериодНачисленияСтрокой" - это не пойму, как
---
Делаю так:
ОбщегоНазначенияКлиентСервер.УстановитьРеквизитФормыПоПути(ЭтаФорма,"ЭтаФорма.ПериодНачисленияСтрокой",ЗначениеПериодНачисления);
В поле выводится не Апрель 2022, а 01.04.2022 0:00:00
---
Что не так делаю?
---
Все... так работает:

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

```1c
    День = "01";

    Если СтрНайти(ПериодНачисленияСтрокой,"Январь") > 0 Тогда
    Месяц = "01";
    ИначеЕсли СтрНайти(ПериодНачисленияСтрокой,"Февраль") > 0 Тогда
    Месяц = "02";
    ИначеЕсли СтрНайти(ПериодНачисленияСтрокой,"Март") > 0 Тогда
    Месяц = "03";
    ИначеЕсли СтрНайти(ПериодНачисленияСтрокой,"Апрель") > 0 Тогда
    Месяц = "04";
    ИначеЕсли СтрНайти(ПериодНачисленияСтрокой,"Май") > 0 Тогда
    Месяц = "05";
    ИначеЕсли СтрНайти(ПериодНачисленияСтрокой,"Июнь") > 0 Тогда
    Месяц = "06";
    ИначеЕсли СтрНайти(ПериодНачисленияСтрокой,"Июль") > 0 Тогда
    Месяц = "07";
    ИначеЕсли СтрНайти(ПериодНачисленияСтрокой,"Август") > 0 Тогда
    Месяц = "08";
    ИначеЕсли СтрНайти(ПериодНачисленияСтрокой,"Сентябрь") > 0 Тогда
    Месяц = "09";
    ИначеЕсли СтрНайти(ПериодНачисленияСтрокой,"Октябрь") > 0 Тогда
    Месяц = "10";
    ИначеЕсли СтрНайти(ПериодНачисленияСтрокой,"Ноябрь") > 0 Тогда
    Месяц = "11";
    Иначе
    Месяц = "12";
    КонецЕсли;

    Год = Прав(ПериодНачисленияСтрокой,4);

    НоваяСтрокаПериод = День + "." + Месяц + "." + Год + " 00:00:00";

    ПериодНачисления = Дата(НоваяСтрокаПериод);
```
---
Если задействовать в ЗУП 3.1 типовой механизм, то с таким кодом в форме документа в поле ПериодНачисления будет отображаться не "Июль 2022", а "20220701". Я уже пробовал.