![]() |
|
Передача информации из серверной процедуры на клиент (УФ) | ☑ | ||
---|---|---|---|---|
0
Johan
23.06.16
✎
07:43
|
Добрый день,помогите разобрать вопрос:
в УТ 11.2 через внешнюю обработку грузится накладная от поставщика.Всё бы хорошо,но поставщик иногда меняет наименование,точку добавит или сокращает наименование было "Ручка гелевая синяя",потом у него стала "ручка гелевая син.".В обработке идет поиск по наименованию(по другому поиск осуществлять не получится) соответственно происходят дубли,т.к номенклатура создаётся если она не найдена,а по сути это один и тот же товар. А теперь к делу: Хочу допилить обработку ,цель найти похожую номенклатуру(позиции может быть несколько) и вывести её пользователю,который будет принимать решение.Как можно реализовать данную задачу ведь из сервера на клиент надо передать как то таблицу значений в которой будет номенклатура из базы и из файла.Или может как то по другому решить,кто что то подобное делал? |
|||
1
Mankubus
23.06.16
✎
07:45
|
(0) >>из сервера на клиент надо передать как то таблицу значений в которой будет номенклатура из базы и из файла
Создай реквизит формы с типом таблица значений. Она доступна и с сервера и с клиента |
|||
2
zak555
23.06.16
✎
07:46
|
так добавь ещё наименование в номенклатуру поставщика
|
|||
3
Лефмихалыч
23.06.16
✎
07:46
|
Предлагаю такой вариант:
1. Обработка, если точное совпадение не находит, оставляет строчку в документе не заполненной, а документ не проведенным 2. После завершения загрузки обработка формирует отчет обо всех документах, которые не удалось полностью автоматически загрузить со всей исходной инфой для ручной обработки 3. Отчет обработка отправляет пользователю, который руками доделает документы. Хоть по почте, хоть бизнес процессом. |
|||
4
VladZ
23.06.16
✎
07:57
|
(0) поиск по наименованию - лажа. Нужно от этого уходить. Попробуйте "зацепиться" либо на код, либо на артикул.
Второй момент - алгоритм работы в целом. Предлагаю сделать так: обработка сначала "парсит" приходящую инфу и показывает результат пользователю. Если какие-то объекты не нашлись - должно быть сообщение, что есть проблемы (ДО ЗАГРУЗКИ В БАЗУ!!!). На этом этапе пользователь должен разрулить все те объекты, которые не нашлись. В идеале, программа должна запомнить эти "привязки", чтобы в следующий раз они нашлись. На первом этапе можно ввести контроль: пока все объекты не нашлись - не давать грузить. Следущий этап: когда будет работать механизм сопоставления хотя бы для 90% - переход на автоматический режим. Для автоматического режима обязательно: логирование процесса. Т.е. в какое время пришла инфа, какие были проблемы. Вот как-то так. |
|||
5
Johan
23.06.16
✎
08:10
|
(3) Как вариант,а если попалась действительно новая номенклатура,то её создавать надо.Но подход мне нравится,боюсь пользователю не понравится ковыряться после.
|
|||
6
Johan
23.06.16
✎
08:12
|
(1) А есть пример?ТЗ то я заполню,проблема вывести на клиент,а после выбора варианта пользователем,снова перейти наСервер далее считывать позиции накладной
|
|||
7
VladZ
23.06.16
✎
08:45
|
"После завершения загрузки обработка формирует отчет обо всех документах, которые не удалось полностью автоматически загрузить со всей исходной инфой для ручной обработки" - этот вариант работает для небольшого объема. Если речь идет, допустим о сотне документов, это уже станет проблемой. Одна косячная номенклатура может закосячить все 100 документов. В общем, проблему нужно разруливать на том этапе, где эта проблема еще не переросла в "очень большую проблему".
|
|||
8
VladZ
23.06.16
✎
08:47
|
(6) "ТЗ то я заполню,проблема вывести на клиент" - в чем проблема? Сделай табличную часть и заполняй ее на сервере. Доступ у тебя будет и на сервере и на клиенте. И нет никакой "проблемы передачи информации".
|
|||
9
zak555
23.06.16
✎
08:50
|
не пойму, чего пыжится
нужно все варианты названия хранить в НоменклатураПоставщиков а там уже чётко соответствие с твой номенклатурой это реально облегчит труд обезьянкам, которые грузят входящие доки а ещё лучше использовать бизнес-сеть или эдо |
|||
10
Johan
23.06.16
✎
09:07
|
(7) грузится в 1 документ,позиций примерно от 80 до 200
|
|||
11
Johan
23.06.16
✎
09:08
|
(8) Процедура или функция с указанным именем не определена,если пытаешься вызваться процедуру на клиенте из сервера
|
|||
12
Johan
23.06.16
✎
09:15
|
(9) пользователю надо сопоставлять периодически номенклатуру поставщика с номенклатурой?
|
|||
13
zak555
23.06.16
✎
09:21
|
(12) естественно
подаём файл на обработку, она выводит пользователю все номенклатуры к загрузке (сопоставленные или нет) пользователь сопоставляет и загружает в БД |
|||
14
Mankubus
23.06.16
✎
09:33
|
(11)
&НаКлиенте Процедура Клиентская1() ЗаполнитьТаблицуНаСервере(); ПоказатьРезультатПользователю(); КонецПроцедуры &НаСервере Процедура ЗаполнитьТаблицуНаСервере() ---- КонецПроцедуры &НаКлиенте Процедура ПоказатьРезультатПользователю --- КонецПроцедуры |
|||
15
Johan
23.06.16
✎
09:47
|
(14) Покажет результаты когда отработает ЗаполнитьТаблицуНаСервере() а в этой процедуре считывается весь файл
|
|||
16
Johan
23.06.16
✎
09:50
|
ЗагрузитьНаСервере()
//бла бла бла эксель открывает и начинаем считывать строки пошёл цикл //находим по наименованию..отлично подставляем в документ //если не находим тогда заполняем ТЗ с похожей номенклатурой и далее надо эту таблицу показать пользователю вот тут надо попасть на клиент |
|||
17
Johan
23.06.16
✎
09:52
|
а потом вернутся обратно когда пользователь сделает выбор,для продолжения выполнения цикла
|
|||
18
Johan
23.06.16
✎
09:52
|
(13) Рассмотрю ваш вариант
|
|||
19
Mankubus
23.06.16
✎
09:55
|
(16) Зачем сразу в документ строки добавлять?
1. На сервере заполняем таблицу формы. строки с ошибкой помечаем. 2. На клиенте показываем ошибочные строки и пользователь их обрабатывает. 3. Создаем документ |
|||
20
Johan
23.06.16
✎
09:57
|
(19) Вариант!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |