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

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

Найти!

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

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

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

odines.ru
31.10.2020 - 21:37
Смотри также:
Признак интерактивности проведения документа.
не получается написать обработку
Нужен удалённый 1С-программист

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

keen
1 - 27.07.2009 - 04:42
Если делать через Докум.НайтиДокумент(Конт.ТекущийДокумент()),
то для работы нужно будет закрывать текущий документ, чтобы он не был заблокирован...
А сначала документ закрывать, загружать в него табличную часть и открывать снова, имхо, как-то коряво получается :(

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

victuan
2 - 27.07.2009 - 04:47
глВзятьКонтекст()

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

keen
3 - 27.07.2009 - 04:56
Может, я его куда-то не туда засовываю, но результат не поменялся(

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

victuan
4 - 27.07.2009 - 04:58
https://odines.ru/thread636.html

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

USSR
5 - 27.07.2009 - 05:26
Делай аналогично методу "Подбор" в типовых конфах. Готовь в обработке таблицу значений, а затем добавляй в документ в форме документа путем вызова штатной процедуры обработки подбора

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

odines.ru
31.10.2020 - 21:37
Смотри также:
Обновление
Бухгалтерия, модернизация ОС
ЗапуститьПриложение локально для терминального пользователя..?

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

keen
6 - 27.07.2009 - 06:20
Спасибо, USSR - так заработало :)
Только не таблицу значений в обработке, а список - в стандартной ТиС берется список.
 
Если уважаемый victuan укажет, что в простейшем примере нужно поменять, чтобы в документе созавалось 2 строки (сейчас одна - при открытии) - я буду премного благодарен
 
Пример:
 
Перем Докум;
//*******************************************
Процедура Сформировать()
Докум.НоваяСтрока();
КонецПроцедуры
//*******************************************
Процедура ПриОткрытии()
Конт = Форма.Параметр.Получить("Контекст");
Докум = Конт;
Докум.НоваяСтрока();
КонецПроцедуры  
//*******************************************

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

USSR
7 - 27.07.2009 - 06:37
(6)Какой такой список? В типовой ТИС ТаблицаНоменклатуры - в ней подобранные товары, а передается она понятно через список

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

keen
8 - 27.07.2009 - 06:46
(7) Я имел ввиду, для передачи в процедуру ОбработкаПодбора() или в глОбработкаПодбора() нужно передавать в качестве параметра список значений. В котором таблица номенклатуры и еще пара дополнительных полей.
Ну да не суть - еще раз тебе спасибо за совет :)

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

victuan
9 - 27.07.2009 - 08:08
(6)

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

victuan
10 - 27.07.2009 - 08:11
//*******************************************
Процедура ПриОткрытии()
Конт = Форма.Параметр; //список значений ломает контекст
Докум=Конт.ТекущийДокумент();
...
ТЗ.НоваяСтрока();
Конт.ЗагрузитьТабличнуюЧасть(ТЗ);
КонецПроцедуры  
//*******************************************

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

victuan
11 - 27.07.2009 - 08:12
http://www.forum.mista.ru/topic.php?id=121598&t1c=1

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, Вы меня не понимаете.
Обработка, в ней есть поля. По умолчанию они пустые, заполняются вручную пользователем.
Пользователь указывает, что он хочет загрузить, и откуда. Потом тыкает кнопку "загрузить".
На момент выполнения процедуры ПриОткрытии() у обработки нет данных для загрузки.
На момент выполнения процедуры Загрузить() эти данные есть, разумеется, заполняется ТЗ данными из Экселя. Но, к сожалению, уже нет возможности заполнить табличную часть документа по этим данным.
 
Если интересно, могу скинуть на мэйл обработку и тот файл, который должен загружаться. Подходит для типовой ТиС. Не работает оно так, как Вы предлагаете (и как я первоначально хотел сделать).
 
Если не интересно, предлагаю нашу дискуссию завершить. Я результата добился, с использованием стандартной процедуры ОбработкаПодбора().

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С: Одинэс.Ру