Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Вывод Сообщения Пользователю в Табличной части (процедура на сервере)

Вывод Сообщения Пользователю в Табличной части (процедура на сервере)
Я
   Meldir
 
22.04.18 - 23:11
Доброго время суток!
Задача: В документе Отчет Производства За Смену есть табличная часть, в которой выводится список "ингредиентов" согласно выбранной пользователем спецификации. Список формируется через запрос на сервере, одновременно надо проверять, хватает ли вообще на складе сырья и, если нет, выводить сообщение. В идеале с привязкой к строке/ячейке. С последним возникла проблема. Сообщения цепляются или к подвалу таблицы, или прилипают снизу к последней строке. Повторюсь, вся процедура формирования табличной части и сообщений идет на сервере.
Вывод организован следующим образом:

Пока РезультатЗапроса.Следующий() Цикл
    Строка = Объект.Материалы.Добавить();
    //...    

    Если ЗначениеЗаполнено(Объект.Количество) Тогда
        Если Объект.Количество > РезультатЗапроса.ПределГотовойПродукции Тогда
            Строка.Количество = 0;
            Строка.Себестоимость = 0;
            тСтрока = Строка.НомерСтроки-1;
            Сообщение = новый СообщениеПользователю;
        //Так сообщения привязываются к подвалу таблицы

            Сообщение.Поле = "Материалы[" + тСтрока + "].Количество";
        // далее - глупость, но именно так сообщения оказываются под нижней строкой таблицы

            //Сообщение.Поле = "Форма.Материалы[" + тСтрока + "].Количество"; 

            Сообщение.УстановитьДанные(РеквизитФормыВЗначение("Объект"));
            Сообщение.Текст = "Не хватает сырья:" + РезультатЗапроса.Номенклатура + ". Дозакажите " + 
            Формат((Объект.Количество - РезультатЗапроса.ПределГотовойПродукции)*
             РезультатЗапроса.Количество,"ЧЦ=4") + РезультатЗапроса.ЕдИзмеренияКомплектующего + ". Сейчас сырья
            хватает на " + РезультатЗапроса.ПределГотовойПродукции + " готовой продукции.";
            Сообщение.Сообщить();
            Продолжить;
        Иначе
            Строка.Количество = РезультатЗапроса.Количество*Объект.Количество;
            Строка.Себестоимость = РезультатЗапроса.Коэффициент*Объект.Количество;
        КонецЕсли;    
    Иначе
        Строка.Количество = РезультатЗапроса.Количество;
        Строка.Себестоимость = РезультатЗапроса.Коэффициент;
    КонецЕсли;
    //...


Ради интереса цепляла сообщения к нетабличному полю - прекрасно прикрепилось, а вот с ячейками таблицы затык. Где я ошибаюсь?
 
 
   Chameleon1980
 
1 - 23.04.18 - 03:19
а так?
Сообщение.Поле = "ЛистОтказа["+Объект.ЛистОтказа.Индекс(стр)+"].Решение";
            

Сообщение.Поле = "Материалы[" + Объект.Материалы.Индекс(стр) + "].Количество";

+ попробовать без
Сообщение.ПутьКДанным = "Объект";
   Chameleon1980
 
2 - 23.04.18 - 03:22
+ вернее в индекс(стр) - стр  нужно передать строку тч (не номер)
   Chameleon1980
 
3 - 23.04.18 - 03:31
хотя вру (м.б.)
утро - 5:30
   Чайник1983
 
4 - 23.04.18 - 06:01
Сообщение.Поле = "Товары[" + Выборка.НомерСтроки - 1 +"].Количество";            Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();
   Otark
 
5 - 23.04.18 - 06:05
https://its.1c.ru/db/pubmanagedui#content:211:hdoc

Сообщение = Новый СообщениеПользователю;
Сообщение.Поле = "Товары[0].Количество";
Сообщение.Текст = "На складе есть только 5 единиц товара.";
Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();
   Meldir
 
6 - 23.04.18 - 09:01
(1) - Если не указываю УстановитьДанные, то сообщения вываливаются в общем списке, на форме даже не отражаются.  При установленных данных результат как у меня в первом случае - цепляются к подвалу.
   Meldir
 
7 - 23.04.18 - 09:25
(4) Запись свойства Поле таким образом даёт ошибку "Преобразование значения к типу Число не может быть выполнено". Если номер строки выразить отдельно, как у меня, и прописать

Сообщение.УстановитьДанные(ЭтотОбъект);

сообщения вываливаются в общем списке, без цепляния к форме.
   hhhh
 
8 - 23.04.18 - 10:09
(7) попробуйте

(Выборка.НомерСтроки - 1)

в скобки
   Meldir
 
9 - 23.04.18 - 10:13
(5) Мануал почитала. Но у меня не работает Сообщение с такими свойствами, хоть убейте. Возможно, что из-за формирования на сервере. Я потестила варианты из этих статей:
http://prosto1s.ru/index.php/59-soobshcheniya-polzovatelyu-v-upravlyaemykh-formakh-eshche-raz
и
https://helpf.pro/faq/view/1842.html
"Не выходит каменный цветок", опять или подвал, или под последнюю строку.
   Meldir
 
10 - 23.04.18 - 10:21
(8) - Ошибка ушла, на этом всё. Сообщения не хотят к ячейкам. Слушайте, может у меня где настройка не такая или галочку какую не вижу? Ну бред же, должно работать. Ну хоть один вариант(((
 
 Рекламное место пустует
   1Садовник
 
11 - 23.04.18 - 11:01
(10) документ записывается в этой же процедуре?
   Meldir
 
12 - 23.04.18 - 11:29
(10) Нет, тут только формирование данных для формы. Пользователь проверил глазками и потом уже нажал сохранение.
   hhhh
 
13 - 23.04.18 - 11:29
(10) вообще-то это неудобно, как вы задумали. Прилеплять сообщение там к какой-то ячейке. Лучше все сообщения выводить внизу. Просто в тексте сообщения чтобы был номер строки. Чтобы они все вместе были.
   Meldir
 
14 - 23.04.18 - 11:37
(13) - ну тут вопрос спорный. Сообщения в любом случае не вывалятся пестрым одеялом на всю форму. Сбоку будет стандартный перечень всех ошибок, а на самой форме выведется последнее, на его окне волшебные стрелочки перехода к предыдущим. Также из перечня по клику можно сразу попасть к ячейке с ошибкой, а не искать её глазами. Проверяла вариант с работой на клиенте (форма справочника была) - мне понравилось. А вот с серверной реализацией не могу сладить.
   Meldir
 
15 - 28.04.18 - 16:37
В общем и смех, и грех. Дело оказалось в релизе.
На 8.3.10.2650 вот такая "реализация":

https://cdn1.savepice.ru/uploads/2018/4/28/07f0276885728e3bf5d29c80257cb4b8-full.jpg

А в 8.3.12.1412 уже всё хорошо:

https://cdn1.savepice.ru/uploads/2018/4/28/da7f6c017e7d9d1c22be9b8d4b86167a-full.jpg
https://cdn1.savepice.ru/uploads/2018/4/28/b63d936da22a272e947e1bb82010ca24-full.jpg

Спасибо всем за участие! :)
   triviumfan
 
16 - 28.04.18 - 16:41
Не верю, что дело в релизе.
   Meldir
 
17 - 29.04.18 - 14:30
(16) Отправила dt-шник товарищу в Мурманск)) Ничего не правили, запустили как было - работает.
   Meldir
 
18 - 29.04.18 - 14:33
(16) Если есть подозрение, что разница в чем-то ещё, давайте спрошу. Самой интересно.
   mistеr
 
19 - 29.04.18 - 15:01
(16) Сложно поверить, что в 1С тоже косячат?

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует