1c 8.3 модальные и не модальные окна в цикле #786535


#0 by norets
Добрый день! Помогите разобраться в таком вопросе: Есть обработка для загрузки номенклатурного справочника из Excel. Требуется при создании вида номенклатуры выбрать ценовую группу. На текущий момент сделано так: </code> (прошу прощения если не очень понятная процедура, но должно хватить. Если что - я полный код приложу) Все загружается, все хорошо если бы не одно но... Выскакивает предупреждение что использование модальных окон запрещено. Это можно отключить сняв конфигурацию с поддержки, чего делать не очень хочется. Есть дублер метода ВвестиЗначение = ПоказатьВводЗначения, но тогда цикл не останавливается и смысл теряется. Есть ли возможность использования метода ПоказатьВводЗначения с остановкой цикла? Как в данной ситуации поступить? Еще раз прошу прощения за сумбурное объяснение. Если есть вопросы - отвечу. Заранее спасибо за помощь!
#1 by Garykom
Вынеси указание наценок (все что требует действий пользователя) из цикла/процедур обработки. Нажал кнопочку - считались все группы - показал их разом все пользователю, пусть проставит циферки - далее грузишь используя введенные данные. Для не модальности изучи
#2 by Garykom
+ Суть отказа от модальности весь код делится на 2 части (процедуры/функции): 1. До вызова/показа формы/диалога не модального, он вызовет для обработки выбора/ввода данных 2. Постобработка результата обычной формы, не модальной
#3 by norets
Спасибо за ответ! Выносить за пределы цикла не вариант, т.к. все равно идет проверка на то есть ли уже этот вид номенклатуры. И вид передается новым элементам справочника сразу после создания. Что так, что эдак все равно не очень удобно. Придется снимать с поддержки. Главное чтобы совсем не отказались от модальности). Еще раз спасибо!
#4 by Garykom
Поймите что модальность это зло и от нее откажутся везде со временем. Лучше заранее правильно переписать "логику работы" юзеры потом спасибо скажут.
#5 by Garykom
>все равно идет проверка на то есть ли уже этот вид номенклатуры Как раз все очень удобно будет и все можно правильно передавать.
#6 by norets
Соглашусь что откажутся. Просто опыта не хватает чтобы понять принцип работы. Подскажите такой момент: Получается что в цикле можно задать значение наценки только для списка выведя на экран все группы из файла, а по очереди никак?  Т.е. действия пользователем будут выполняться только после всего цикла, так? Попытаюсь объяснить в чем проблема: У меня Excel файл считывается в ТЗ(таблица значений). Это можно сделать только &НаСервере, потом из ТЗ передаю в структуру, а структуру запихиваю в массив(есть понимание что что-то не так, но нашел только такой способ) который передаю в процедуру &НаКлиенте. Получая из массива и структуры данные создаю ( или нахожу существующий) элемент справочника ВидыНоменклатуры. При создании элемента самой номенклатуры передаю данные из вида и заполняю его. В случае если сначала считывать все виды номенклатуры из файла, мне придется к справочнику обращаться и перебирать его несколько раз. Это же тоже не очень хорошо, правда? Если есть возможность изменить логику - подскажите. Сейчас у меня происходит так: находим новый вид номенклатуры, пользователя спрашивают какую наценку ему присвоить, после чего для всей номенклатуры этого вида ( новых элементов) устанавливается эта наценка.
#7 by norets
Я, наверное, не так объясняю... Нет у меня понмания как все это можно вывести за цикл. Все равно происходить перебор ( файла или справочника) и цикл не ждет ввода данных от пользователя. Вот что меня беспокоит.
#8 by МимохожийОднако
В любом случае надо разделить на несколько этапов: 1. Прочитать файл, создать массив, закрыть файл 2. Обработать массив и создать все возможные виды. 3. Предложить пользователю форму с ответами на вопросы 4. Еще раз обработать полученные данные с учетом ответов. Если заранее выяснить возможные варианты, то и п.3, 4 может не понадобится вовсе.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С