Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 апр 2024, 01:19

Дата преобразуется в строку

Автор Besart, 15 июн 2013, 13:30

0 Пользователей и 1 гость просматривают эту тему.

Besart

столкнулся с интересным поведением системы, ситуация такая: на вход процедуры передается два параметра Дата, в процедуре один из параметров перобразуется в строку
&НаКлиенте
Процедура Списать(Команда)
СписаниеТоваров.ОбработкаСписаниеСебестоимости(НачалоПериода, НачалоПериодаПоУмолчанию);// вот эти два параметра
КонецПроцедуры

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
НачалоПериодаПоУмолчанию = Последовательности.ОстаткиНоменклатуры.ПолучитьГраницу().Дата;
КонецПроцедуры

передаются в общий модуль
Если НачДата = '0001.01.01' Тогда
ПД = НДПоУм;
Иначе
ПД = НачДата;
КонецЕсли;

где в дальнейшем ПД используется как параметр в запросе, нашел выход следующий Запрос.УстановитьПараметр("Дата", Дата(ПД));
однако не вполне понятно поведение системы, почему система преобразует при присвоении ПД из значения НДПоУм в строку а ПД из НачДата остается Датой

GRADUS

Цитата: Besart от 15 июн 2013, 13:30
столкнулся с интересным поведением системы, ситуация такая: на вход процедуры передается два параметра Дата, в процедуре один из параметров перобразуется в строку
&НаКлиенте
Процедура Списать(Команда)
СписаниеТоваров.ОбработкаСписаниеСебестоимости(НачалоПериода, НачалоПериодаПоУмолчанию);// вот эти два параметра
КонецПроцедуры

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
НачалоПериодаПоУмолчанию = Последовательности.ОстаткиНоменклатуры.ПолучитьГраницу().Дата;
КонецПроцедуры

передаются в общий модуль
Если НачДата = '0001.01.01' Тогда
ПД = НДПоУм;
Иначе
ПД = НачДата;
КонецЕсли;

где в дальнейшем ПД используется как параметр в запросе, нашел выход следующий Запрос.УстановитьПараметр("Дата", Дата(ПД));
однако не вполне понятно поведение системы, почему система преобразует при присвоении ПД из значения НДПоУм в строку а ПД из НачДата остается Датой

НДПоУм имеет строковый тип

Besart

при присвоении переменной ПД значение из типа Дата, в обоих случаях дата преобразуется в строку, интересно, никогда на это не обращал внимание, и в курсах об этом не было ни слова, ну что же, будем знать B)

SlazZy

Цитата: Besart от 15 июн 2013, 22:13
при присвоении переменной ПД значение из типа Дата, в обоих случаях дата преобразуется в строку, интересно, никогда на это не обращал внимание, и в курсах об этом не было ни слова, ну что же, будем знать B)
я бы на вашем месте более внимательно смотрел в отладчик. Просто так ничего не должно преобразовываться.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск