Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

КД 2 Строка в дату

КД 2 Строка в дату
Я
   applesound
 
02.07.20 - 12:30
Конвертация данных, редакция 2.1 (2.1.8.2)
Переношу данные из УТ 11.1.2.29 в БП 3.0.75.37
УТ
Документ источник: СписаниеБезналичныхДенежныхСредств вид операции Перечисление налога
Реквизит источник: ПоказательПериода (строка)
БП
Документ приёмник: СписаниеСРасчётногоСчета
Реквизит приёмник: НалоговыйПериод (Дата)

Данные источника вносятся пользователем с помощью ФормаВводаПериода, которая в обратном порядке раскладывает данные строки в дату и число для вывода пользователю.

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

ПоказательОснования = Параметры.ПоказательОснования;

ПозицияПериода = Найти(СокрЛП(Параметры.ПоказательПериода),".");
ПозицияГода = Найти(Сред(СокрЛП(Параметры.ПоказательПериода), ПозицияПериода + 1), ".") + ПозицияПериода;

ПериодичностьНалога = Лев(СокрЛП(Параметры.ПоказательПериода), ПозицияПериода - 1);
СтрокаНомерПериода = Сред(СокрЛП(Параметры.ПоказательПериода), ПозицияПериода + 1, ПозицияГода - ПозицияПериода - 1);
СтрокаГодПериода = Сред(СокрЛП(Параметры.ПоказательПериода), ПозицияГода + 1);

Если Найти("ТП, ЗД", ПоказательОснования) > 0 Тогда
Если СтрДлина(ПериодичностьНалога) = 2
И СтрДлина(СтрокаНомерПериода) = 2
И СтрДлина(СтрокаГодПериода) = 4
И СтроковыеФункцииКлиентСервер.ТолькоЦифрыВСтроке(ПериодичностьНалога)
И СтроковыеФункцииКлиентСервер.ТолькоЦифрыВСтроке(СтрокаНомерПериода)
И СтроковыеФункцииКлиентСервер.ТолькоЦифрыВСтроке(СтрокаГодПериода) Тогда
ДатаПоказателя = Дата(Число(СтрокаГодПериода), Число(СтрокаНомерПериода), Число(ПериодичностьНалога));
КонецЕсли;
КонецЕсли;

НомерПериода = СтрокаНомерПериода;
ГодПериода = СтрокаГодПериода;

Если Параметры.ПоказательПериода = "0" Тогда
ПериодичностьНалога = "0";
ИначеЕсли Найти("МС,КВ,ПЛ,ГД", ПериодичностьНалога) = 0 Тогда
ПериодичностьНалога = "-";
КонецЕсли;

УправлениеЭлементамиФормы();

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

Вопрос. КАК перенести данные строки в дату? Строка источник выглядит МС.12.2019.
Мои предположиения: перед выгрузкой на стороне источника необходимо привести строку к началу месяца, используя механиз процедуры ПриСозданииНаСервере. Далее педать получившуюся дату в приёмник. Главная проблема как это правильно сделать.
   Злопчинский
 
1 - 02.07.20 - 12:44
прочитал заглавие
Строка в аду
   Mihasya
 
2 - 02.07.20 - 13:20
в правилах выгрузки в ПКС ПоказательПериода пиши:
Значение = <тут преобразуешь значение из Источник.ПоказательПериода в дату>
   applesound
 
3 - 02.07.20 - 15:51
ПКС Перед выгрузкой
ПоказательПериода = Источник.ПоказательПериода 
ПозицияПериода = Найти(СокрЛП(ПоказательПериода),"."); 
ПозицияГода = Найти(Сред(СокрЛП(ПоказательПериода), ПозицияПериода + 1), ".") + ПозицияПериода; 

ПериодичностьНалога = Лев(СокрЛП(ПоказательПериода), ПозицияПериода - 1); 
СтрокаНомерПериода = Сред(СокрЛП(ПоказательПериода), ПозицияПериода + 1, ПозицияГода - ПозицияПериода - 1); 
СтрокаГодПериода = Сред(СокрЛП(ПоказательПериода), ПозицияГода + 1); 
НалоговыйПериод = Дата(Строка(СтрокаГодПериода + СтрокаНомерПериода + "01")); 
Значение = НалоговыйПериод;

Верно?
   polosov
 
4 - 02.07.20 - 15:53
(3) Значение = СтроковыеФункцииКлиентСервер.СтрокаВДату(Источник.ПоказательПериода);
   applesound
 
5 - 02.07.20 - 17:04
(4) не совсем понял.
Реквизит источника ПоказательПериода тип.строка Значение: МС.12.2019
Реквизит приёмник НалоговыйПериод тип.дата Формат:ДФ='ММММ гггг' Значение 12.2019
Для переноса реквизитов достаточно:
ПКС
Источник: ПоказательПериода 
Приёмник: НалоговыйПериод 
Перед выгрузкой  Значение = СтроковыеФункцииКлиентСервер.СтрокаВДату(Источник.ПоказательПериода);
Так?
   Mihasya
 
6 - 02.07.20 - 19:18
(5) нет, выделяешь год через Сред(...), потом выделяешь месяц также, после это все переводишь функцией преобразования строки в дату
И значению присваиваешь эту дату

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.