Поочередное открытие документов

1. AlexDnepr 23.07.24 17:03 Сейчас в теме
8,3 УТП на неуправляемых формах.
Добрый день. Требуется открывать форму документа по очереди. Суть- открывается один документ и пока юзер не закроет его руками , второй не открывается и так до конца выборки. Вот что имеется на эту тему ( в качестве примера на 10 доков), но у меня открывается только первый док и все, дальше как будто все останавливается.

&НаКлиенте
Процедура Старт(Команда)

МассивСсылок = ПолучитьМассивСсылокНаДокументы();

Если МассивСсылок.Количество() = 0 Тогда
Возврат;
КонецЕсли;

ДополнительныеПараметры = Новый Структура("МассивСсылок", МассивСсылок);
ПараметрыФормы = Новый Структура("Ключ", МассивСсылок[0]);

ОписаниеОповещения = Новый ОписаниеОповещения("ПослеЗакрытияДокумента", ЭтаФорма, ДополнительныеПараметры);
ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаОбъекта", ПараметрыФормы,,,,,ОписаниеОповещения);

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

&НаКлиенте
Процедура ПослеЗакрытияДокумента(Результат, ДопПараметры) Экспорт

ДопПараметры.МассивСсылок.Удалить(0);

Если ДопПараметры.МассивСсылок.Количество() = 0 Тогда
Возврат;
КонецЕсли;

ПараметрыФормы = Новый Структура("Ключ", ДопПараметры.МассивСсылок[0]);

ОписаниеОповещения = Новый ОписаниеОповещения("ПослеЗакрытияДокумента", ЭтаФорма, ДопПараметры);
ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаОбъекта", ПараметрыФормы,,,,,ОписаниеОповещения);

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

&НаСервере
Функция ПолучитьМассивСсылокНаДокументы()

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 10
| РеализацияТоваровУслуг.Ссылка КАК Ссылка
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг";

Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");

КонецФункции // ПолучитьМассивСсылокНаДокументы()
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. user1880116 23.07.24 18:00 Сейчас в теме
(1)
8,3 УТП на неуправляемых формах.
...
&НаКлиенте
Процедура Старт(Команда)

Чой-то как-то... У тебя управляемые формы в толстом клиенте?
8. AlexDnepr 23.07.24 18:14 Сейчас в теме
(6) Нет не управляемые, а модуль взят с управляемых, я закомментил на клиенте, на сервере, рассчитывал что пройдет на обычных
9. user2033930 23.07.24 18:22 Сейчас в теме
(8)
не управляемые, а модуль взят с управляемых
Ай, молодец!!! Залил в жигули дизель, предварительно закрасив маркером буквы ДТ на канистре... Не едет, да?
14. AlexDnepr 23.07.24 18:31 Сейчас в теме
(9) не едет, Процедура ПриЗакрытииДокумента похоже не срабатывает
10. user1880116 23.07.24 18:27 Сейчас в теме
(8) Если у тебя обычные формы, то не имей нам мозг и открывай модально в цикле
11. AlexDnepr 23.07.24 18:29 Сейчас в теме
(10) но мне не надо чтоб открылось 100 форм одновременно, а только по очереди. Первую закрыл- открылась следующая и т.д.
12. user1880116 23.07.24 18:30 Сейчас в теме
(11) Ты русское слово "модально" понимаешь?
13. user2033930 23.07.24 18:30 Сейчас в теме
(11) Иди учи слово "модально".
15. AlexDnepr 23.07.24 18:36 Сейчас в теме
(13) Когда откроется модально в форме работать можно будет до ее закрытия руками?
16. user2033930 23.07.24 18:41 Сейчас в теме
17. user1880116 23.07.24 18:43 Сейчас в теме
(15)
работать можно будет
Прикрепленные файлы:
2. user2033930 23.07.24 17:11 Сейчас в теме
Спрашивать про отладчик, как я понимаю, бесполезно?
3. AlexDnepr 23.07.24 17:26 Сейчас в теме
(2) Отладчик показал МассивСсылок.Количество()= 10 как положено в процедуре Старт
4. user2033930 23.07.24 17:29 Сейчас в теме
(3) Обалдеть теперь... Это как бы и так понятно было, что не 0, раз первый документ открывается.
Может соизволишь сообщить остальную информацию? После закрытия документа - что-то происходит вообще?

PS. Используй ЭтотОбъект, а не ЭтаФорма
5. AlexDnepr 23.07.24 17:54 Сейчас в теме
После закрытия ничего не происходит в том то и дело.

ЭтотОбъект не проходит - Ошибка при вызове конструктора (ОписаниеОповещения)
ОписаниеОповещения = Новый ОписаниеОповещения("ПослеЗакрытияДокумента", ЭтотОбъект, ДополнительныеПараметры);
по причине:
Не найден экспортируемый метод: ПослеЗакрытияДокумента
7. user2033930 23.07.24 18:00 Сейчас в теме
(5)
ЭтотОбъект не проходит
А, блин, ОФ.
Тогда нафиг тебе ОписаниеОповещения?
18. soft_wind 24.07.24 15:54 Сейчас в теме
можно такой вариант использовать
1.получили массив документов и открыли форму с первым документом
затем подключаете обрабтчикожидания с интервалом 5 секунд
в нем
1.получаете форму для ссылки Массив[0]
2.проверяете Если ФормаДок.Открыта() Тогда Выход из обработчика
3.Иначе удаляете из массива ссылку по [0] получаете и открываете форму для следующего элемента
выходите

и в начале обработчика вставить проверку если Массив = 0 то остановить обработчикОжидания

т.е. каждые 5 секунд производится проверка наличия открытой формы из массива[0]
и если пользователь уже закрыл форму, то ему откроется следующая,
и так пока не завершится весь массив
19. usershmuser 24.07.24 16:05 Сейчас в теме
(18) Дополню.
Делать такое необходимо не в документе, а в общем модуле т.к. процедура заканчивается в ПослеЗакрытияДокумента
20. user1880116 24.07.24 21:43 Сейчас в теме
(18)
подключаете обрабтчикожидания с интервалом 5 секунд
в нем
1.получаете форму для ссылки Массив[0]
2.проверяете Если ФормаДок.Открыта()
Прикрепленные файлы:
soft_wind; +1 Ответить
21. soft_wind 25.07.24 09:48 Сейчас в теме
(20) прикольно! плюсанул (+)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот