Как в 1С:Управление торговлей 11.4 изменить количество знаков после запятой в прайс-листе?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

В типовой конфигурации 1С:Управление торговлей 11.4 при формировании прайс-листа пользователи часто сталкиваются с тем, что в колонке количества (остатков) выводится три знака после запятой. Это стандартная точность для платформы 1С, необходимая для корректного учета весовых товаров. Однако для штучного товара такая детализация избыточна и загромождает печатную форму. Рассмотрим подробно, как решить эту задачу, не снимая конфигурацию с поддержки.

Способ 1. Использование расширения конфигурации (программный метод)

Этот метод является наиболее надежным, так как он позволяет динамически управлять оформлением отчета, не изменяя основную конфигурацию. Мы воспользуемся механизмом расширений для перехвата процедуры компоновки результата отчета.

Проанализируем ситуацию: отчет «Прайс-лист» строится на базе Системы компоновки данных (СКД). Нам нужно изменить формат поля прямо перед тем, как система начнет выводить данные. Для этого в расширении необходимо создать программный модуль для отчета ПрайсЛист и добавить в него обработчик ПриКомпоновкеРезультата.

Рассмотрим пример кода, который нужно внедрить в расширение:


&После("ПриКомпоновкеРезультата")
Процедура Dev_ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    // Ищем основной набор данных в схеме компоновки
    пНаборДанных = СхемаКомпоновкиДанных.НаборыДанных.Найти("ПрайсЛист");
    
    Если пНаборДанных <> Неопределено Тогда
        // Пытаемся найти поле, отвечающее за остаток
        пОстаток = пНаборДанных.Поля.Найти("Остаток");
        
        Если пОстаток <> Неопределено И ТипЗнч(пОстаток) = Тип("ПолеНабораДанныхСхемыКомпоновкиДанных") Тогда
            Попытка
                // Устанавливаем формат: ЧЦ=15 (всего цифр); ЧДЦ=0 (знаков после запятой)
                пОстаток.Оформление.УстановитьЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Формат"), "ЧЦ=15; ЧДЦ=0");
            Исключение
                // Обработка ошибки, если параметр не может быть установлен
            КонецПопытки;
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры

Разберем по шагам, что делает этот код. Аннотация &После позволяет выполнить наш код сразу после выполнения типового алгоритма. Мы обращаемся к объекту СхемаКомпоновкиДанных, находим в ней нужное поле и принудительно устанавливаем формат вывода числа. Параметр ЧДЦ=0 означает, что дробная часть будет полностью скрыта. Если вам нужно оставить, например, один знак, используйте ЧДЦ=1.

Способ 2. Подключение внешнего отчета через БСП

Многие разработчики пытаются сохранить типовой отчет «Прайс-лист» на диск, изменить его и подключить обратно как внешний. Однако при этом часто возникает ошибка: «Невозможно подключить дополнительный отчет из файла». Это происходит из-за отсутствия обязательной функции регистрации в модуле объекта отчета.

Выясним причину: современные конфигурации используют библиотеку стандартных подсистем (БСП). Чтобы система «узнала» ваш отчет, в модуле объекта должна быть экспортная функция СведенияОВнешнейОбработке.

Посмотрим на пример правильной структуры этой функции для прайс-листа:


Функция СведенияОВнешнейОбработке() Экспорт
    РегистрационныеДанные = Новый Структура;
    РегистрационныеДанные.Вставить("Наименование", "Прайс-лист (настроенный)");
    РегистрационныеДанные.Вставить("БезопасныйРежим", Истина);
    РегистрационныеДанные.Вставить("Версия", "1.1");
    РегистрационныеДанные.Вставить("Вид", "ДополнительныйОтчет");
    
    тзКоманд = Новый ТаблицаЗначений;
    тзКоманд.Колонки.Добавить("Идентификатор");
    тзКоманд.Колонки.Добавить("Представление");
    тзКоманд.Колонки.Добавить("Использование");
    тзКоманд.Колонки.Добавить("ПоказыватьОповещение");
    
    строкаКоманды = тзКоманд.Добавить();
    строкаКоманды.Идентификатор = "ОткрытьПрайсЛист";
    строкаКоманды.Представление = "Открыть настроенный прайс-лист";
    строкаКоманды.Использование = "ОткрытиеФормы";
    строкаКоманды.ПоказыватьОповещение = Ложь;
    
    РегистрационныеДанные.Вставить("Команды", тзКоманд);
    Возврат РегистрационныеДанные;
КонецФункции

После добавления этого кода в модуль объекта внешнего отчета, его можно будет загрузить через меню НСИ и администрирование — Печатные формы, отчеты и обработки — Дополнительные отчеты и обработки. В самом внешнем отчете вы сможете зайти в настройки СКД и на закладке «Наборы данных» или «Вычисляемые поля» вручную задать формат для поля Остаток.

Способ 3. Изменение формата в пользовательском режиме

Если вы не хотите прибегать к программированию, можно попробовать изменить оформление через настройки варианта отчета. Поскольку «Прайс-лист» в УТ 11.4 реализован на СКД, пользователю доступны гибкие настройки оформления.

  1. Откройте отчет Прайс-лист.
  2. Нажмите кнопку Настройки....
  3. В нижней части окна выберите вид настроек Расширенный.
  4. Перейдите на закладку Оформление.
  5. Нажмите кнопку Добавить.
  6. В появившемся списке параметров найдите Формат и установите флажок.
  7. Нажмите на многоточие в поле значения формата. В поле Точность установите 0.
  8. Перейдите на закладку Оформляемые поля (в том же окне создания элемента оформления) и добавьте туда поле В наличии или Остаток.
  9. Нажмите ОК и сформируйте отчет.

Важный момент: отчет «Прайс-лист» является динамическим. Его нет в справочнике «Макеты печатных форм», так как он не имеет статического макета. Все изменения визуального представления в пользовательском режиме делаются именно через настройки оформления СКД. Не забудьте сохранить измененный вариант отчета (кнопка «Варианты отчета» — «Сохранить как»), чтобы настройки не слетели при следующем открытии.

Резюме

Проанализировав ситуацию, мы видим, что наиболее корректным техническим решением является использование расширения. Оно позволяет один раз прописать логику форматирования и гарантировать, что у всех пользователей прайс-лист будет выглядеть аккуратно, без лишних знаков после запятой. Если же задача разовая или доступ к конфигуратору ограничен, используйте расширенные настройки оформления в самом интерфейсе программы 1С:Предприятие.

← На главную