|
Вывод Сообщения Пользователю в Табличной части (процедура на сервере) | ☑ | ||
---|---|---|---|---|
0
Meldir
22.04.18
✎
23:11
|
Доброго время суток!
Задача: В документе Отчет Производства За Смену есть табличная часть, в которой выводится список "ингредиентов" согласно выбранной пользователем спецификации. Список формируется через запрос на сервере, одновременно надо проверять, хватает ли вообще на складе сырья и, если нет, выводить сообщение. В идеале с привязкой к строке/ячейке. С последним возникла проблема. Сообщения цепляются или к подвалу таблицы, или прилипают снизу к последней строке. Повторюсь, вся процедура формирования табличной части и сообщений идет на сервере. Вывод организован следующим образом: Пока РезультатЗапроса.Следующий() Цикл Строка = Объект.Материалы.Добавить(); //... Если ЗначениеЗаполнено(Объект.Количество) Тогда Если Объект.Количество > РезультатЗапроса.ПределГотовойПродукции Тогда Строка.Количество = 0; Строка.Себестоимость = 0; тСтрока = Строка.НомерСтроки-1; Сообщение = новый СообщениеПользователю; //Так сообщения привязываются к подвалу таблицы Сообщение.Поле = "Материалы[" + тСтрока + "].Количество"; // далее - глупость, но именно так сообщения оказываются под нижней строкой таблицы //Сообщение.Поле = "Форма.Материалы[" + тСтрока + "].Количество"; Сообщение.УстановитьДанные(РеквизитФормыВЗначение("Объект")); Сообщение.Текст = "Не хватает сырья:" + РезультатЗапроса.Номенклатура + ". Дозакажите " + Формат((Объект.Количество - РезультатЗапроса.ПределГотовойПродукции)* РезультатЗапроса.Количество,"ЧЦ=4") + РезультатЗапроса.ЕдИзмеренияКомплектующего + ". Сейчас сырья хватает на " + РезультатЗапроса.ПределГотовойПродукции + " готовой продукции."; Сообщение.Сообщить(); Продолжить; Иначе Строка.Количество = РезультатЗапроса.Количество*Объект.Количество; Строка.Себестоимость = РезультатЗапроса.Коэффициент*Объект.Количество; КонецЕсли; Иначе Строка.Количество = РезультатЗапроса.Количество; Строка.Себестоимость = РезультатЗапроса.Коэффициент; КонецЕсли; //... Ради интереса цепляла сообщения к нетабличному полю - прекрасно прикрепилось, а вот с ячейками таблицы затык. Где я ошибаюсь? |
|||
1
Chameleon1980
23.04.18
✎
03:19
|
а так?
Сообщение.Поле = "ЛистОтказа["+Объект.ЛистОтказа.Индекс(стр)+"].Решение"; Сообщение.Поле = "Материалы[" + Объект.Материалы.Индекс(стр) + "].Количество"; + попробовать без Сообщение.ПутьКДанным = "Объект"; |
|||
2
Chameleon1980
23.04.18
✎
03:22
|
+ вернее в индекс(стр) - стр нужно передать строку тч (не номер)
|
|||
3
Chameleon1980
23.04.18
✎
03:31
|
хотя вру (м.б.)
утро - 5:30 |
|||
4
Чайник1983
23.04.18
✎
06:01
|
Сообщение.Поле = "Товары[" + Выборка.НомерСтроки - 1 +"].Количество"; Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить(); |
|||
5
Otark
23.04.18
✎
06:05
|
https://its.1c.ru/db/pubmanagedui#content:211:hdoc
Сообщение = Новый СообщениеПользователю; Сообщение.Поле = "Товары[0].Количество"; Сообщение.Текст = "На складе есть только 5 единиц товара."; Сообщение.УстановитьДанные(ЭтотОбъект); Сообщение.Сообщить(); |
|||
6
Meldir
23.04.18
✎
09:01
|
(1) - Если не указываю УстановитьДанные, то сообщения вываливаются в общем списке, на форме даже не отражаются. При установленных данных результат как у меня в первом случае - цепляются к подвалу.
|
|||
7
Meldir
23.04.18
✎
09:25
|
(4) Запись свойства Поле таким образом даёт ошибку "Преобразование значения к типу Число не может быть выполнено". Если номер строки выразить отдельно, как у меня, и прописать
Сообщение.УстановитьДанные(ЭтотОбъект); сообщения вываливаются в общем списке, без цепляния к форме. |
|||
8
hhhh
23.04.18
✎
10:09
|
(7) попробуйте
(Выборка.НомерСтроки - 1) в скобки |
|||
9
Meldir
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 "Не выходит каменный цветок", опять или подвал, или под последнюю строку. |
|||
10
Meldir
23.04.18
✎
10:21
|
(8) - Ошибка ушла, на этом всё. Сообщения не хотят к ячейкам. Слушайте, может у меня где настройка не такая или галочку какую не вижу? Ну бред же, должно работать. Ну хоть один вариант(((
|
|||
11
1Садовник
23.04.18
✎
11:01
|
(10) документ записывается в этой же процедуре?
|
|||
12
Meldir
23.04.18
✎
11:29
|
(10) Нет, тут только формирование данных для формы. Пользователь проверил глазками и потом уже нажал сохранение.
|
|||
13
hhhh
23.04.18
✎
11:29
|
(10) вообще-то это неудобно, как вы задумали. Прилеплять сообщение там к какой-то ячейке. Лучше все сообщения выводить внизу. Просто в тексте сообщения чтобы был номер строки. Чтобы они все вместе были.
|
|||
14
Meldir
23.04.18
✎
11:37
|
(13) - ну тут вопрос спорный. Сообщения в любом случае не вывалятся пестрым одеялом на всю форму. Сбоку будет стандартный перечень всех ошибок, а на самой форме выведется последнее, на его окне волшебные стрелочки перехода к предыдущим. Также из перечня по клику можно сразу попасть к ячейке с ошибкой, а не искать её глазами. Проверяла вариант с работой на клиенте (форма справочника была) - мне понравилось. А вот с серверной реализацией не могу сладить.
|
|||
15
Meldir
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 Спасибо всем за участие! :) |
|||
16
triviumfan
28.04.18
✎
16:41
|
Не верю, что дело в релизе.
|
|||
17
Meldir
29.04.18
✎
14:30
|
(16) Отправила dt-шник товарищу в Мурманск)) Ничего не правили, запустили как было - работает.
|
|||
18
Meldir
29.04.18
✎
14:33
|
(16) Если есть подозрение, что разница в чем-то ещё, давайте спрошу. Самой интересно.
|
|||
19
mistеr
29.04.18
✎
15:01
|
(16) Сложно поверить, что в 1С тоже косячат?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |