Внешняя печатная форма ТОРГ-12 с указанием количества мест и массы брутто для УНФ 1.4 и 1.5.

На печать выводится ТОРГ-12 с заполненными колонками "В одном месте", "Мест, штук" и "Масса брутто".

Данные для заполнения колонок «В одном месте», «Мест, штук» берутся из справочника Единицы измерения. Единица измерения и коэффициент соответственно.
Проверено на УНФ 1.4.9.44 и 1.5.2.26.
Для заполнения колонки «Масса брутто» необходимо в конфигурацию добавить непериодический регистр сведений. Изменения существующих объектов конфигурации не требуется.
Данные о количестве мест выводятся в любом случае.

Кому нужен вес единиц измерения, далее описание регистра и формы.

Имя регистра: dev_ЕдиницаИзмеренияВес
Измерения: ЕдиницаИзмерения тип СправочникСсылка.ЕдиницыИзмерения
Ресурсы: ВесКг тип Число 15,3
Объем тип Число 15,3

ФормаСписка.

Используется форма списка. Выводятся все имеющиеся в справочнике Единицы измерения элементы с указанием номенклатуры. Отбор по счету учета номенклатуры = Товары (41).

Удаляем автоматически создаваемый динамический список. Добававляем.

Реквизиты:
Список ТИП (ТаблицаЗначений)
Колонки:
Номенклатура Тип СправочникСсылка.Номенклатура
ЕдиницаИзмерения Тип СправочникСсылка.ЕдиницыИзмерения
БазоваяЕдиница Тип СправочникСсылка.КлассификаторЕдиницИзмерения
ВесКг Тип Число 15,3
Объем Тип Число 15,3

Выносим Список на форму.

Модуль формы:

//////////////////////////////////////////////////////

&НаКлиенте
Перем НомерСтроки;
&НаКлиенте
Перем НужноЗаписать;

// ОТКРЫТИЕ ФОРМЫ

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Таблица = ПолучитьСписок();
ЗначениеВДанныеФормы(Таблица, Список);
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьСписок()

ТекстЗапроса =
"ВЫБРАТЬ
| ЕдиницыИзмерения.Владелец КАК Номенклатура,
| ЕдиницыИзмерения.Ссылка КАК ЕдиницаИзмерения,
| ЕдиницыИзмерения.Владелец.ЕдиницаИзмерения КАК БазоваяЕдиница,
| dev_ЕдиницаИзмеренияВес.ВесКг,
| dev_ЕдиницаИзмеренияВес.Объем
|ИЗ
| Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.dev_ЕдиницаИзмеренияВес КАК dev_ЕдиницаИзмеренияВес
| ПО ЕдиницыИзмерения.Ссылка = dev_ЕдиницаИзмеренияВес.ЕдиницаИзмерения
|ГДЕ
| ЕдиницыИзмерения.Владелец.СчетУчетаЗапасов = ЗНАЧЕНИЕ(ПланСчетов.Управленческий.ТоварыПродукция)
|
|УПОРЯДОЧИТЬ ПО
| Номенклатура,
| ЕдиницаИзмерения";

Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;
Возврат Запрос.Выполнить().Выгрузить();

КонецФункции

&НаКлиенте
Процедура ПриОткрытии(Отказ)
НужноЗаписать = Ложь;
КонецПроцедуры

// ЗАПИСЬ ЗАПИСИ РЕГИСТРА при изменении активной строки или при закрытии формы

&НаСервереБезКонтекста
Процедура Записать(ДанныеСтруктура)

Набор = РегистрыСведений.dev_ЕдиницаИзмеренияВес.СоздатьНаборЗаписей();
Набор.Отбор.ЕдиницаИзмерения.Установить(ДанныеСтруктура.ЕдиницаИзмерения);

Если ДанныеСтруктура.ВесКг = 0 И ДанныеСтруктура.Объем = 0 Тогда
Набор.Прочитать();
Набор.Удалить(0);
Иначе
Запись = Набор.Добавить();
Запись.ЕдиницаИзмерения = ДанныеСтруктура.ЕдиницаИзмерения;
Запись.ВесКг = ДанныеСтруктура.ВесКг;
Запись.Объем = ДанныеСтруктура.Объем;
КонецЕсли;

Набор.Записать(Истина);

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

&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)

Если НужноЗаписать Тогда

Строка = Список.Получить(НомерСтроки);

ДанныеСтруктура = Новый Структура;
ДанныеСтруктура.Вставить("ЕдиницаИзмерения", Строка.ЕдиницаИзмерения);
ДанныеСтруктура.Вставить("ВесКг", Строка.ВесКг);
ДанныеСтруктура.Вставить("Объем", Строка.Объем);

Записать(ДанныеСтруктура);

КонецЕсли;

НомерСтроки = Элемент.ТекущиеДанные.ПолучитьИдентификатор();
НужноЗаписать = Ложь;

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

&НаКлиенте
Процедура СписокВесКгПриИзменении(Элемент)
НужноЗаписать = Истина;
КонецПроцедуры

&НаКлиенте
Процедура СписокОбъемПриИзменении(Элемент)
НужноЗаписать = Истина;
КонецПроцедуры

&НаКлиенте
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)

Если НужноЗаписать Тогда

Строка = Список.Получить(НомерСтроки);

ДанныеСтруктура = Новый Структура;
ДанныеСтруктура.Вставить("ЕдиницаИзмерения", Строка.ЕдиницаИзмерения);
ДанныеСтруктура.Вставить("ВесКг", Строка.ВесКг);
ДанныеСтруктура.Вставить("Объем", Строка.Объем);

Записать(ДанныеСтруктура);

КонецЕсли;

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

//////////////////////////////////////////////////////

 

3 Comments

  1. vlastapov

    Как раз понадобилась ТОРГ12 с количеством мест и массой Брутто. Будем пробовать.

    Reply
  2. MrWonder

    А для 1.6 не модифицировали?

    Reply
  3. MrWonder

    (2) Обновил релиз до последнего и увидел, что работает из коробки.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *