Помогите побороть табличную часть документа

Форум 1С: Одинэс.Ру

Найти!

Помогите побороть табличную часть документа

keen
27.07.2009 - 04:40
Ситуация: Документ, внешняя обработка, подключенная как печатная форма.
Эта обработка загружает данные из внешнего файла в документ.
Необходимо, чтобы в незаписанном документе создавалась табличная часть этой обработкой.
Проблема: Пока идет работа процедуры ПриОткрытии() в обработке, строки прекрасно удаляются, добавляются. Как только обработка открылась, не хотят работать методы НоваяСтрока(), УдалитьСтроку() и т.д. Ошибки при этом никакие не пишутся.
Так как документ не записан, то работа с ним идет через
Докум = Форма.Параметр.Получить("Контекст");
 
Если документ все же сначала записывать, и работу с документом вести через
Конт = Форма.Параметр.Получить("Контекст");
Докум = Конт.ТекущийДокумент();
То при попытке ввести/удалить строку выходит ошибка "Не выбран документ!"
 
К списку тем 1 > К списку форумов

Интересные темы

odines.ru
22.10.2020 - 18:39
Смотри также:
УРБД. Как организовать миграцию документов не по виду документа, а по определенному критерию
выгрузка из ЗиК в Бух
Налог на прибыль - КПП выводится только на титульном листе

Re: Помогите побороть табличную часть документа

keen
12 - 27.07.2009 - 08:46
(11) эту страничку я уже почитал с первой ссылки, спасибо :)
 
В Вашем варианте оно работает, бесспорно. Потому что загрузка табличной части прописана в процедуре ПриОткрытии()
 
А если разделить на 2 процедуры:
Перем Конт;
Процедура Сформировать()
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяСтрока();
Конт.ЗагрузитьТабличнуюЧасть(ТЗ);
КонецПроцедуры
 
Процедура ПриОткрытии()
Конт = Форма.Параметр; //список значений ломает контекст
Докум=Конт.ТекущийДокумент();
КонецПроцедуры  
 
В этом случае уже строки документа не создаются.
 
А я не знаю необходимое количество загружаемых строк. Оно определяется уже в самой обработке.

Re: Помогите побороть табличную часть документа

victuan
13 - 27.07.2009 - 09:44
(12) Не понял, зачем делить на две процедуры? Пусть сама обработка все и делает.

Re: Помогите побороть табличную часть документа

keen
14 - 27.07.2009 - 10:00
(13) Смотрите, у меня открывается обработка.
В этой обработке я указываю файл загрузки (XLS), лист загрузки и те границы строк, которые мне нужно загрузить.
 
На момент открытия обработки у меня просто нет этих данных, и я не могу заранее сказать, сколько строк мне нужно будет загрузить.
Все определяется уже после открытия, когда я указываю необходимые мне данные.

Re: Помогите побороть табличную часть документа

victuan
15 - 27.07.2009 - 10:06
(14) в (10), там где у меня
...
ТЗ.НоваяСтрока();
ставишь код по заполнению ТЗ данными из Эксель-файла.

Re: Помогите побороть табличную часть документа

keen
16 - 27.07.2009 - 10:29
Victuan, Вы меня не понимаете.
Обработка, в ней есть поля. По умолчанию они пустые, заполняются вручную пользователем.
Пользователь указывает, что он хочет загрузить, и откуда. Потом тыкает кнопку "загрузить".
На момент выполнения процедуры ПриОткрытии() у обработки нет данных для загрузки.
На момент выполнения процедуры Загрузить() эти данные есть, разумеется, заполняется ТЗ данными из Экселя. Но, к сожалению, уже нет возможности заполнить табличную часть документа по этим данным.
 
Если интересно, могу скинуть на мэйл обработку и тот файл, который должен загружаться. Подходит для типовой ТиС. Не работает оно так, как Вы предлагаете (и как я первоначально хотел сделать).
 
Если не интересно, предлагаю нашу дискуссию завершить. Я результата добился, с использованием стандартной процедуры ОбработкаПодбора().

Интересные темы

odines.ru
22.10.2020 - 18:39
Смотри также:
Как сохранить отчет в PRN
вопрос по обмену
Журнал регистраций

Re: Помогите побороть табличную часть документа

USSR
17 - 27.07.2009 - 10:44
(16)Я обычно разделяю операции чтения из файла и загрузку в документ. То есть делаю кнопку "Загрузить" или "Заполнить" c выдачей какого-либо протокола, а затем уже загрузку в документы или еще куда-либо.
"Но, к сожалению, уже нет возможности заполнить табличную часть документа по этим данным." - это я не осилил. Кроме того, совсем необязательно вызывать все эти дела из формы документа, я предпочитаю (сугубо на мой вкус) внешние обработки, вызываемые сами по себе, которые формируют документ от начала до конца.
 

Re: Помогите побороть табличную часть документа

keen
18 - 27.07.2009 - 10:56
(17)Внешние обработки иногда удобней, согласен.
Но когда у пользователя открыт журнал заявок, перед глазами у него список документов - ему проще открыть нужный документ и дозагрузить туда, к примеру, десяток-два строк из внешнего файла, чем открывать обработку, искать там этот же документ, и загружать оттуда.
 

Re: Помогите побороть табличную часть документа

USSR
19 - 27.07.2009 - 11:01
это тоже не проблема, но говорю же, дело вкуса. я просто так и не понял проблемы.

Re: Помогите побороть табличную часть документа

keen
20 - 27.07.2009 - 11:03
Да и задача у меня была: показали документ, там добавлена в документе кнопка и в модуле документа прописана какая-то загрузка.
Сказали "хотим такую же, но в другом документе, и чтобы покруче загрузка была"
Вот оттуда и пошел, только не хотелось модуль портить, во внешнюю обработку все вынес, а оно вона как заморочно в итоге получилось :(

Re: Помогите побороть табличную часть документа

Cthulhu
21 - 27.07.2009 - 11:16
открывай обработку модально - сможешь из неё через контекст корректировать мн.ч. в форме документа.
не хочешь модально - подключай ВК (например, FormEx), которая исправляет эту багофичу 1с-ины (невозможность корректировки мн.ч. в форме документа через её контекст).
К списку тем 1 > К списку форумов
Тема закрыта и находится в архиве.
Но Вы можете начать новую тему.
« Ит.ИспользоватьРазделительУчета(РазделительУчета); Камин ЗП не пойму как задать экр для начислений »
© 2009 Форум 1С: Одинэс.Ру