Имя: Пароль:
1C
1С v8
Отображение веса и количества в подборе номенклатуры.
,
0 Godunov
 
22.03.16
13:50
Приветствую специалистов и гуру 1С, нужна ваша помощь в решении одной из задач, у самого опыта и знаний не хватает (новичок в этом непростом деле).
Тут скрин подбора номенклатуры в 1С 8.2 УТ 10.3
https://cloud.mail.ru/public/MWvC/TDxsdtFXc
https://cloud.mail.ru/public/FPRE/GDj2tpzVj - сама обработка «ПодборНоменклатуры», в модуле объекта есть код для подсчёта суммы = количество * цена
Процедура мОбновитьНадписьФомулаСумма(Форма) Экспорт

    Если Форма.ЭлементыФормы.Найти("ТаблицаХарактеристикНоменклатуры") = Неопределено Тогда
        Форма.ЭлементыФормы.НадписьФомулаСумма.Заголовок = ОбщегоНазначения.ФорматСумм(Форма.Цена * Форма.Количество,,"0,00");
    Иначе
        ИтоговаяСумма = 0;
        Для Каждого СтрокаТабличнойЧасти Из Форма.ТаблицаХарактеристикНоменклатуры Цикл
            ИтоговаяСумма = ИтоговаяСумма + Ценообразование.ПересчитатьЦенуПриИзмененииВалюты(СтрокаТабличнойЧасти.Цена, СтрокаТабличнойЧасти.ВалютаЦены, Форма.ВалютаЦены) * СтрокаТабличнойЧасти.Количество;
        КонецЦикла;
        Форма.ЭлементыФормы.НадписьФомулаСумма.Заголовок = ИтоговаяСумма;
    КонецЕсли;

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

Надо дополнить строки, чтобы отображался вес в КГ в строке ниже (количество умножалось на вес), а также 1000 ШТ = КГ
https://cloud.mail.ru/public/JGJ5/wt2ugeTkm в тестовой базе дополнил в форму, но как сделать код, пока не пойму...
Благодарю заранее откликнувшимся…
1 Godunov
 
22.03.16
13:52
В конфигураторе Обработка "Подбор номенклатуры" форма ВводПараметровБезСерийБезХарактеристик
2 Godunov
 
23.03.16
13:51
Ребят, подскажите хотя бы, как вес отобразить в окне "Количество и цена" в подборе номенклатуры...?
3 FIXXXL
 
23.03.16
13:53
(2) насколь помню, туда структура определенная передается
вот и добавь что тебе нужно в эту передачу
смотри как идет вызов формы ВводПараметровБезСерийБезХарактеристик из формы подбора
4 Godunov
 
23.03.16
13:58
Гляну...
5 FIXXXL
 
23.03.16
13:58
(4) обрати внимание на ЕдиницуИзмерения, вес в ней "лежит"
6 Godunov
 
23.03.16
14:21
Добавил в реквизит значение Вес, указав тип: СправочникОбъект.ЕдиницыИзмерения
https://cloud.mail.ru/public/Awyi/L2nJy6rQ6
А в форме вывел надпись Вес.
https://cloud.mail.ru/public/EzmC/TPSEFRXfr
Но это не помогло решить вопрос...
7 FIXXXL
 
23.03.16
14:23
(6) значение реквизиту по ходу пьесы присвоить не забыл?
сорри, картинки недоступны на работе
8 Godunov
 
23.03.16
14:27
(7) Значение реквизиту присвоил - СправочникОбъект.ЕдиницыИзмерения
А в надписи Вес в данных указал реквизит вес.вес, это не помогло, что-то ещё не хватает...
9 FIXXXL
 
23.03.16
16:44
(8) ты тип обозначил
значением будет ЕдиницаИзмерения.Вес
10 FIXXXL
 
23.03.16
16:45
+(9) ну посмотри как там форме входящие данные передаются, сделай по аналогии
если в форму уже влетает ЕдиницаИзмерения, бери через точку вес и всех делов
11 Godunov
 
23.03.16
17:27
Попробую...
12 Godunov
 
29.03.16
13:31
В форме подбора номеклатуры вывел "Поле ввода" с названием Вес, в событиях ПриИзменении указал ВесОтображениеПриИзменении, в модуле объекта указал процедуру:

Процедура ВесОтображениеПриИзменении()          
            
//СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;
СтрокаТабличнойЧасти = ЭлементыФормы.Вес.Данные;

СтрокаТабличнойЧасти.Вес = СтрокаТабличнойЧасти.ЕдиницаИзмерения.Вес*СтрокаТабличнойЧасти.Количество;      

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

В итоге пишет ошибку:
{Обработка.ПодборНоменклатуры.Форма.ВводПараметровБезСерийБезХарактеристик.Форма(118)}: Значение не является значением объектного типа (Вес)
СтрокаТабличнойЧасти.Вес = СтрокаТабличнойЧасти.ЕдиницаИзмерения.Вес*СтрокаТабличнойЧасти.Количество;
13 Godunov
 
30.03.16
12:18
Ошибку  устранил, надо было код писать мне не так:

СтрокаТабличнойЧасти.Вес = СтрокаТабличнойЧасти.ЕдиницаИзмерения.Вес*СтрокаТабличнойЧасти.Количество;

А вот так:

Вес = ЕдиницаИзмерения.Вес*Количество;

Вот только вес не отображается всё равно...
14 Godunov
 
30.03.16
14:39
Решил вопрос, может кому поможет решение...
Код в модуле объекта ПодобораНоменклатуры:

Процедура мОбновитьНадписьФомулаВеса(Форма) Экспорт

    Форма.ЭлементыФормы.НадписьФомулаВеса.Заголовок = ОбщегоНазначения.ФорматСумм(Форма.ЕдиницаИзмерения.Вес*Форма.Количество,,"0,00");
        
КонецПроцедуры // мОбновитьНадписьФомулаВеса()

Также поиском искал код НадписьФомулаСумма добавляя в процедуры НадписьФомулаВеса вида:

мОбновитьНадписьФомулаСумма(Форма);
мОбновитьНадписьФомулаВеса(Форма);

В форме "ВводПараметровБезСерийСХарактеристиками" добавил в табличное поле колонку "Вес" с нужными значениями.
15 Godunov
 
30.03.16
14:43
http://savepic.ru/9213064.png
Добавлял надпись НадписьФомулаВеса в форму.
16 Godunov
 
07.04.16
12:19
Приветствую всех гуру 1С, возник последний вопрос по данной теме. Приходится менять количество и нажимать Enter, чтобы значения в весе изменились, как сделать так, чтобы автоматически менялись значения в весе при изменении количества?
Есть метод Обновить(); но он ошибку выдаёт.
Сам код:

Процедура мОбновитьНадписьФомулаВеса(Форма) Экспорт

    Форма.ЭлементыФормы.НадписьФомулаВеса.Заголовок = ОбщегоНазначения.ФорматСумм(Форма.ЕдиницаИзмерения.Вес*Форма.Количество,,"0,00");
    Форма.ЭлементыФормы.НадписьФомулаВеса.Заголовок.Обновить();
КонецПроцедуры // мОбновитьНадписьФомулаВеса()

Ошибка:
{Обработка.ПодборНоменклатуры.МодульОбъекта(3519)}: Значение не является значением объектного типа (Обновить)
Форма.ЭлементыФормы.НадписьФомулаВеса.Заголовок.Обновить();

Кто может подсказать, как сделать автоматическое отображение значения веса. Может не так делаю?
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.