Граница в СКД
Jun. 11th, 2025 01:15 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Був звіт на СКД, фактично оборотка по регістру, але розгорнута, де кінцевий залишок отримувався через [РегістрНакопичення].Остаток(&КонецПериода)
Користувачі поскаржилися на проблеми з даними за останній день періоду.
Отже 1) .Остаток з параметром типу "Дата" завжди показує на початок дня, тобто рухи за день &КонецПериода не враховані
Погуглив.
СКД користувачу не дає працювати з Граница і навіть в типізації Параметру не дає обрати.
Проте чудово сприймає програмно встановлене значення параметра Новый Граница(КонецДня(КонецПериода), ВидГраницы.Включая)
Відтестував - все чудово відпрацювало, але у користувача чомусь не спрацьовувало, скаржилось на порожнє значення параметру тощо.
Врешті довелося:
-зробити окремий параметр для запиту кінцевого залишку ПериодКО
-на ПриКомпоновкеРезультата() поставив виклик встановлення значення на базі КонецПериода.
-попутньо виявилось що Параметр КонецПериода може бути не лише Дата, тому попередньо
Если ТипЗнч(ЗначениеПараметра.Значение) = Тип("Дата") Тогда
тКонецПериода = ЗначениеПараметра.Значение;
ИначеЕсли ТипЗнч(ЗначениеПараметра.Значение) = Тип("СтандартнаяДатаНачала") Тогда
тКонецПериода = ЗначениеПараметра.Значение.Дата;
ИначеЕсли ТипЗнч(ЗначениеПараметра.Значение) = Тип("СтандартныйПериод") Тогда
тКонецПериода = ЗначениеПараметра.Значение.ДатаОкончания;
Иначе
тКонецПериода = Неопределено
КонецЕсли;
-і фіналом
Если ЗначениеЗаполнено(тКонецПериода) Тогда
КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ПериодКО", Новый Граница(КонецДня(тКонецПериода), ВидГраницы.Включая));
КонецЕсли
Користувачі поскаржилися на проблеми з даними за останній день періоду.
Отже 1) .Остаток з параметром типу "Дата" завжди показує на початок дня, тобто рухи за день &КонецПериода не враховані
Погуглив.
СКД користувачу не дає працювати з Граница і навіть в типізації Параметру не дає обрати.
Проте чудово сприймає програмно встановлене значення параметра Новый Граница(КонецДня(КонецПериода), ВидГраницы.Включая)
Відтестував - все чудово відпрацювало, але у користувача чомусь не спрацьовувало, скаржилось на порожнє значення параметру тощо.
Врешті довелося:
-зробити окремий параметр для запиту кінцевого залишку ПериодКО
-на ПриКомпоновкеРезультата() поставив виклик встановлення значення на базі КонецПериода.
-попутньо виявилось що Параметр КонецПериода може бути не лише Дата, тому попередньо
Если ТипЗнч(ЗначениеПараметра.Значение) = Тип("Дата") Тогда
тКонецПериода = ЗначениеПараметра.Значение;
ИначеЕсли ТипЗнч(ЗначениеПараметра.Значение) = Тип("СтандартнаяДатаНачала") Тогда
тКонецПериода = ЗначениеПараметра.Значение.Дата;
ИначеЕсли ТипЗнч(ЗначениеПараметра.Значение) = Тип("СтандартныйПериод") Тогда
тКонецПериода = ЗначениеПараметра.Значение.ДатаОкончания;
Иначе
тКонецПериода = Неопределено
КонецЕсли;
-і фіналом
Если ЗначениеЗаполнено(тКонецПериода) Тогда
КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ПериодКО", Новый Граница(КонецДня(тКонецПериода), ВидГраницы.Включая));
КонецЕсли