Приветствую, Форумчане!
1с8.3.12, самопис, БСП, УФ
Сделал отчет.
Сам отчет работает, как надо. Вот пример кода обработки поля "Размеры":
ВЫБОР
КОГДА ДвижениеТМЦОстаткиИОбороты.Размеры.Ссылка ЕСТЬ NULL
ТОГДА ВЫБОР
КОГДА ДвижениеТМЦОстаткиИОбороты.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.Балка)
ТОГДА ЗНАЧЕНИЕ(Справочник.РазмерыБалки.ПустаяСсылка)
КОГДА ДвижениеТМЦОстаткиИОбороты.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.Комплекса)
ТОГДА ЗНАЧЕНИЕ(Справочник.РазмерыКомплекса.ПустаяСсылка)
КОГДА ДвижениеТМЦОстаткиИОбороты.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.Плита)
ТОГДА ЗНАЧЕНИЕ(Справочник.РазмерыПлиты.ПустаяСсылка)
КОГДА ДвижениеТМЦОстаткиИОбороты.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.Постамент)
ТОГДА ЗНАЧЕНИЕ(Справочник.РазмерыПостамента.ПустаяСсылка)
КОГДА ДвижениеТМЦОстаткиИОбороты.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.Стела)
ТОГДА ЗНАЧЕНИЕ(Справочник.РазмерыСтелы.ПустаяСсылка)
КОГДА ДвижениеТМЦОстаткиИОбороты.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ЦветникСтандартный)
ТОГДА ЗНАЧЕНИЕ(Справочник.РазмерыЦветника.ПустаяСсылка)
ИНАЧЕ ЗНАЧЕНИЕ(Справочник.РазмерыПрочие.ПрочееЗначение)
КОНЕЦ
ИНАЧЕ ВЫБОР
КОГДА ДвижениеТМЦОстаткиИОбороты.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.БалкаЦветника)
ТОГДА ДвижениеТМЦОстаткиИОбороты.Размеры.РазмерБалкиДляДвиженияПоРегиструТМЦ
ИНАЧЕ ДвижениеТМЦОстаткиИОбороты.Размеры
КОНЕЦ
КОНЕЦ КАК Размеры,
ИНАЧЕ ЗНАЧЕНИЕ(Справочник.РазмерыПрочие.ЛевыйРазмер)
ИНАЧЕ ЗНАЧЕНИЕ(Справочник.РазмерыПрочие.ПустаяСсылка)
Constantus @ Вчера, 10:22
,
Если посмотреть на решение, то я бы реализовал все это по принципу регистра Контактная информация.
Один справочник с видами размеров и регистр со значениями.
Номенклатура, ВидРазмера, ЗначениеРазмера.
Потому как замучаешься справочники создавать )
А по вопросу - чуток не понял, что пытаемся получить.
Попробую объяснить ситуацию. Сделал отчет:
ВЫБРАТЬ
....................................
КОГДА ДвижениеТМЦОстаткиИОбороты.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.БалкаЦветника)
ТОГДА ДвижениеТМЦОстаткиИОбороты.Размеры.РазмерБалкиДляДвиженияПоРегиструТМЦ
ИНАЧЕ ДвижениеТМЦОстаткиИОбороты.Размеры
КОНЕЦ КАК Размер,
.......................................
ВЫБРАТЬ
....................................
ДвижениеТМЦОстаткиИОбороты.Размеры
.......................................
Имеется Номенклатура "Балка". У нее есть 2-а размера:
100*50*25 (код 000001111) - правильная и нужная
100*50*25 (код 000002222) - не нужная (ошибочная).
В регистр накопления "Движения ТМЦ" легли позиции:
Балка; 100*50*25 (код 000001111); 50 шт
Балка; 100*50*25 (код 000002222); 50 шт
Это не совсем правильная ситуация, т.к. код "000002222" был ошибочным
И отчет показывал, что у меня на складе 2-е балки по 50 штук, хотя ответ должен быть:
Балка; 100*50*25 (код 000001111); 100 шт
Что я сделал в своем отчете СКД. Я сделал комбинацию через "Когда...Тогда...Иначе" в результате добился, что в отчете получился правильный результат:
Балка; 100*50*25 (код 000001111); 100 шт
Т.е. результат дал по правильному коду и вывел правильное количество.
Когда я делаю расшифровку по регистратору, то мне он выдает операции по регистратору, где есть только код "000001111", т.е. выводит усеченный результат без учета кода "000002222", т.е. дает опять результат
Балка; 100*50*25 (код 000001111); 50 шт
Судя по всему это правильно, т.к. расшифровка обращается к Регистратору (например, поступлению), где лежат результаты с обоими размерами (кодами) и находит только один.
Вот и встал вопрос: можно ли в расшифровке отчета СКД, именно в расшифровке сделать еще нечто, как я сделал в основном отчете? Т.е. "превратить" через "Когда... Тогда... Если" второй код в первый? :-)
Constantus @ Сегодня, 13:49
,
Можно попробовать
Если 000002222 ТОГДА 000001111
Если 000001111 ТОГДА 000001111
То есть подменяем все ненужное нужным. Но что-то такой подход настораживает, если работа не разовая.
Интуиция подсказывает, что все равно расшифровка покажет регистраторы где 000001111.
Кликая по Коду мы передаем в запрос Параметр - 000001111.
Запрос выполняется правильно.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua