Как выгрузить данные из списка формы документа, который ещё не записан? 1Cv8.3
Есть документ, у него форма(не форма списка), которая содержит в себе таблицу.
Необходимо вытащить с формы данные до проведения в таблицу значений, чтобы свернуть строки и загрузить обратно.
Искал на форумах, пробовал разные способы, но так и не нашёл реализацию.
Надеюсь тут есть добрые и знающие люди)
Необходимо вытащить с формы данные до проведения в таблицу значений, чтобы свернуть строки и загрузить обратно.
Искал на форумах, пробовал разные способы, но так и не нашёл реализацию.
Надеюсь тут есть добрые и знающие люди)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(8)
-напрямую к таблице обратиться не получается
-через объект пробовал, в котором сама таблица(список)
-через ЭлементыФормы пробовал
-и без Эта Форма не обошлось
Допустим следующий код отрабатывает, но данных не находит:
-тут пусто
-тут 0
-напрямую к таблице обратиться не получается
-через объект пробовал, в котором сама таблица(список)
-через ЭлементыФормы пробовал
-и без Эта Форма не обошлось
Допустим следующий код отрабатывает, но данных не находит:
ТЗПродукция = ЭтаФорма.Объект.Продукция.Выгрузить();
-тут пусто
Количество = ЭтаФорма.Объект.Продукция.Количество();
-тут 0
Вообще-то я писал обработки, которые получают "ФормуКлиентскогоПриложения", работают с ней, в том числе "режут строки", и в итоге НЕ ЗАПИСАННОМ документе остается меньшее число строк.
Мол, устраивает - записывай, или выходи из документа, не сохраняя, и его вообще в базе не будет.
Через расширение делал. Инициация разная, но в основном программно созданная команда проверки в модуле формы документа. При её инициации "ЭтаФорма" имеет тип "ФормаКлиентскогоПриложения"
С вариантом внешней обработки - не занимался, не интересно было, там сразу "объект" требуется записать, а можно ли "отключить" это или обойти, не хотел разбираться.
В этом запросе упоминается "общая форма", смущает, с таким я не работал....
Мол, устраивает - записывай, или выходи из документа, не сохраняя, и его вообще в базе не будет.
Через расширение делал. Инициация разная, но в основном программно созданная команда проверки в модуле формы документа. При её инициации "ЭтаФорма" имеет тип "ФормаКлиентскогоПриложения"
С вариантом внешней обработки - не занимался, не интересно было, там сразу "объект" требуется записать, а можно ли "отключить" это или обойти, не хотел разбираться.
В этом запросе упоминается "общая форма", смущает, с таким я не работал....
(24) Ну вот, привожу кусок кода исполняемой процедуры
Это - процедура. Процедура работает после закрытия другой формы, где пользователь должен кое-что выбрать. Эта "другая" форма стартует от нажатия моей программно созданной кнопки.
Внимание на строку ТЧ = ЭтаФорма.Объект.Начисления; здесь я получаю эдакую сведённую табличную часть документа "Начисление зарплаты и взносов" в ЗУПе, тип - ФормаКлиентскогоПриложения.
Есть у документа ссылка или нет - не имеет значение. Всё отрабатывает как надо.
Ваше право потом записать это или выйти не сохраняя уже существующий или вновь созданный документ
и далее работаю с ней, и так далее.
ЗЫ. Для понимания, какие "инструменты" вам доступны, читайте какие вообще МЕТОДЫ есть у "ФормаКлиентскогоПриложения"
Это - процедура. Процедура работает после закрытия другой формы, где пользователь должен кое-что выбрать. Эта "другая" форма стартует от нажатия моей программно созданной кнопки.
Внимание на строку ТЧ = ЭтаФорма.Объект.Начисления; здесь я получаю эдакую сведённую табличную часть документа "Начисление зарплаты и взносов" в ЗУПе, тип - ФормаКлиентскогоПриложения.
Есть у документа ссылка или нет - не имеет значение. Всё отрабатывает как надо.
Ваше право потом записать это или выйти не сохраняя уже существующий или вновь созданный документ
&НаКлиенте
Процедура ПродолжитьДалее(Значение, ключ) Экспорт;
ФразаФинала = Истина;
ЭтоПремия = АЭтоПремия(Значение);
ТЧ = ЭтаФорма.Объект.Начисления;
Период = ЭтаФорма.Объект.МесяцНачисления;
Отклонённые = ПолучитьОтклонённых(ТЧ, Период, Значение, ключ);
Если Отклонённые.Количество() > 0 Тогда
НаПечать = Новый Массив;
// Изменяем в ТЧ Начисления
ВыбранныеСтроки = Новый Массив;
Для каждого Стр из Отклонённые Цикл
Попытка
// здесь я ищу строку в табличной части
Строка = ЭтаФорма.Объект.Начисления.НайтиСтроки(Новый Структура("НомерСтроки, Сотрудник, Начисление", Стр.НомерСтроки, Стр.Сотрудник, Значение))[0];
Показатьи далее работаю с ней, и так далее.
ЗЫ. Для понимания, какие "инструменты" вам доступны, читайте какие вообще МЕТОДЫ есть у "ФормаКлиентскогоПриложения"
(34) Делайте так
&НаКлиенте
Процедура СНВПП_СвернутьПосле(Команда)
ааа = 1;
КонецПроцедуры
В "ааа" точка останова. Запускаете. И в этом месте через F9 в консоли делаете:
ЭтаФорма - и смотрите все, что там есть. Можно также вызвать и посмотреть "ЭтотОбъект"
Находите там то, что надо и путь выкладываете в код
А сейчас вы вслепую пытаетесь угадать путь к таблице.
&НаКлиенте
Процедура СНВПП_СвернутьПосле(Команда)
ааа = 1;
КонецПроцедуры
В "ааа" точка останова. Запускаете. И в этом месте через F9 в консоли делаете:
ЭтаФорма - и смотрите все, что там есть. Можно также вызвать и посмотреть "ЭтотОбъект"
Находите там то, что надо и путь выкладываете в код
А сейчас вы вслепую пытаетесь угадать путь к таблице.
(43) Я сам сейчас обработку (внешнюю) пишу, с формой.
В общем, в модуле формы делаю F9
Набираю "ЭтаФорма" - получаю "ФормаКлиентскогоПриложения".
Раскрываю, нахожу там "Объект" (Тип - ДанныеФормыСтруктура).
Раскрываю "Объект",
в нем "Список" (это моя ТЧ). Тип - ДанныеФормыКоллекция.
Команда "Показать значения в отдельном окне" - выводит все содержимое "Списка".
Ссылки у меня нет, потому что не документ, а обработка.
Но я пишу в ЗУПе. Может, у вас в БП что-то не так ? я не ведаю
В общем, в модуле формы делаю F9
Набираю "ЭтаФорма" - получаю "ФормаКлиентскогоПриложения".
Раскрываю, нахожу там "Объект" (Тип - ДанныеФормыСтруктура).
Раскрываю "Объект",
в нем "Список" (это моя ТЧ). Тип - ДанныеФормыКоллекция.
Команда "Показать значения в отдельном окне" - выводит все содержимое "Списка".
Ссылки у меня нет, потому что не документ, а обработка.
Но я пишу в ЗУПе. Может, у вас в БП что-то не так ? я не ведаю
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот