gifts2017

Использование стандартной обработки Загрузка данных из табличного документа.epf для заполнения табличных частей - обычный интерфейс

Опубликовал Антон Губарьков (rugubara) в раздел Обмен - Загрузка и выгрузка в Excel

Стандартная внешняя обработка теперь может быть использована для заполнения табличных частей любых справочников и документов. Достаточно добавить опубликованную процедуру и зарегистировать обработку в списке внешних обработок табличных частей. Это позволит вашим пользователям загружать табличные части любых документов из Excel

Я столкнулся с тем, что стандартная обработка Загрузка данных из табличного документа.epf позволяет заполнять табличные формы любых документов, но делает она это неудобно. Приходится каждый раз выбирать тип документа, конкретный документ и его табличную часть. 

При этом, стандартные конфигурации УТ 10.3 и БП 2.0 (возможно, и другие, я просто не тестировал) имеют в меню Сервис настройки Внешние печатные формы и обработки -> Внешние обработки заполнения табличных частей. Эта сервисная настройка позволяет добавить ещё одну строку для вызова обработки в подменю Заполнить командной панели табличной части. Вот пример из УТ 10.3 для заполнения ТЧ документа Поступление Товаров и Услуг. Добавленный пункт называется Excel. 

Для того, чтобы это так получилось, необходимо добавить в стандартную внешнююобработку с диска ИТС Загрузка данных из табличного документа.epf следующуюпроцедуру:

Загрузка в ТЧ














// Процедура инициализирует реквизиты в режиме вызова заполнения ТЧ
Процедура Инициализировать(Объект = Неопределено, ИмяТабличнойЧасти, ТабличноеПолеОбъекта) Экспорт
 // Загрузить ссылки на документ и ТЧ если переданы
 
 Если Объект.Ссылка.Пустая() тогда 
 Сообщить("Загрузка данных в ТЧ: Ошибка. Для загрузки данных в табличную часть документ должен быть записан в информационную базу."); 
 Возврат; // ничего не передали
 Иначе
 ЭтотОбъект.РежимЗагрузки=1; // режим вызова для заполнения ТЧ документа
 ЭтотОбъект.СсылкаИсточника=Объект.Ссылка;
 ЭтотОбъект.ТабличнаяЧастьИсточника=ИмяТабличнойЧасти;
 КонецЕсли;
 Форма = ЭтотОбъект.ПолучитьФорму("Форма");
 
 Форма.ЭлементыФормы.РежимЗагрузки.ТолькоПросмотр = Истина; // запретить изменение режима для вызова из ТЧ документа
 Форма.ЭлементыФормы.ТипОбъекта.ТолькоПросмотр = Истина;
 Форма.ЭлементыФормы.СсылкаИсточника.ТолькоПросмотр = Истина;
 Форма.ЭлементыФормы.ТабличнаяЧастьИсточника.ТолькоПросмотр = Истина;
 
 
 Форма.Открыть();

 

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

 

Процедура инициализирует обработку ссылкой на открытый документ и запрещает изменения режима загрузки и ссылки. 

Добавлять процедуру необходимо в модуль объекта. После этого можно зарегистрировать внешнюю обработку через Сервис-Внешние отчеты и обработки-Внешние обработки заполнения табличных частей. Если требуется обслуживать несколько документов/ТЧ - зарегистрируйте обработку для каждой пары Документ/ТЧ.

Скачать файлы

Наименование Файл Версия Размер
процедура Инициализировать() 127
.txt 1,03Kb
16.11.12
127
.txt 1,03Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Макас (makas) 20.11.12 12:51
Приходится каждый раз выбирать тип документа, конкретный документ и его табличную часть.


это лечится сохранением настроек.

Для меня лично, самое большое неудобство = невозможность обработки загрузить одновременно данные в таб.часть и в справочник
2. Антон Губарьков (rugubara) 20.11.12 16:41
Да, частично это лечится сохранением настроек. Однако, сценарий работы всё равно остается неудобным:
  • 1. создать новый документ и заполнить шапку.
  • 2. Сохранить документ и запомнить его номер
  • 3. запустить обработку и загрузить настройки, связанные с этим типом документов.
  • 4. выбрать запомненный документ.
  • 5. Заполнить таб. документ и загрузить.
Я же предлагаю:
  • 1. создать новый документ и заполнить шапку.
  • 2. Сохранить документ и запомнить его номер
  • 3. запустить обработку и загрузить настройки, связанные с этим типом документов. Выбрать из меню Заполнить пункт Excel.
  • 4. выбрать запомненный документ.
  • 5. Заполнить таб. документ и загрузить.

Мне кажется, что так быстрее и удобнее.

Что же касается создания элементов справочников, то я предпочитаю, чтобы это делалось осознанно и отдельной операцией. Мне уже приходилось чистить от дубликатов номенклатурный справочник из 600 000 позиций до 96 000 рабочих позиций. Это надолго отбивает охоту автоматизировать создание дубликатов...
3. nelse (nelse) 21.11.12 04:52
(2) rugubara,
Мне уже приходилось чистить от дубликатов номенклатурный справочник из 600 000 позиций до 96 000 рабочих позиций. Это надолго отбивает охоту автоматизировать создание дубликатов...

Мне тоже, поэтому я Вас очень даже понимаю.
4. Виктор (vkt) 22.11.12 15:46
При попытке использования данного совета в УПП 1.3 обнаружилось, что на форме обработки поле ТабличнаяЧастьИсточника остается незаполненным. А так как поле закрывается от редактирования, то и нет возможности вручную выбрать табличную часть документа. Как это вылечить?
5. Антон Губарьков (rugubara) 23.11.12 22:39
(4) vkt, к сожалению, у меня нет конфигурации УПП и проверить я не могу. Попробуйте добавить отладочную печать в процедуру Инизиализировать() и проверить передаваемые значения. Второй вариант - закоментировать строки, которые запрещают изменение реквизитов документа и табличной части.

Форма.ЭлементыФормы.РежимЗагрузки.ТолькоПросмотр = Истина; // запретить изменение режима для вызова из ТЧ документа
Форма.ЭлементыФормы.ТипОбъекта.ТолькоПросмотр = Истина;
Форма.ЭлементыФормы.СсылкаИсточника.ТолькоПросмотр = Истина;
Форма.ЭлементыФормы.ТабличнаяЧастьИсточника.ТолькоПросмотр = Истина;
6. Андрей Хабибулин (teflon) 24.11.12 07:53
Можно еще в ПриОткрытии() добавить
Если ТабличнаяЧастьИсточника = Неопределено Тогда
ТабличнаяЧастьИсточника = ВосстановитьЗначение("Обработка Загрузка данных из табличного документа: ТабличнаяЧастьИсточника");
КонецЕсли;
вместо:

ТабличнаяЧастьИсточника = ВосстановитьЗначение("Обработка Загрузка данных из табличного документа: ТабличнаяЧастьИсточника");
7. Виктор (vkt) 26.11.12 16:28
(5) rugubara, Не знаю, может быть у меня какая-то другая обработка загрузки данных..., но при открытии формы запускается процедура УстановитьСписокТабличныхЧастей, в которой очищается СписокВыбора табличной части источника:

Процедура УстановитьСписокТабличныхЧастей()

СписокВыбора = ЭлементыФормы.ТабличнаяЧастьИсточника.СписокВыбора;
СписокВыбора.Очистить();
Если СсылкаИсточника = Неопределено Тогда
Возврат;
КонецЕсли;
Для каждого ТабличнаяЧасть Из СсылкаИсточника.Метаданные().ТабличныеЧасти Цикл
СписокВыбора.Добавить(ТабличнаяЧасть.Имя, ТабличнаяЧасть.Представление());
КонецЦикла;

КонецПроцедуры // ()

Если только отключить эту процедуру? Неужели у вас в обработках такой процедуры нет? Почему бы не выложить доработанную обработку?
8. Виктор (vkt) 27.11.12 11:23
(6) teflon, Предлагаемое решение сработало. Следовательно, кроме добавления Инициализировать(), необходимо внести изменение в ПриОткрытии().
9. Антон Губарьков (rugubara) 06.12.12 19:25
Такое решение корректно работает только до того, как вы загрузите сохраненные настройки вручную или поставите загрузку настройки по умолчанию. Загрузка любых настроек очищает ссылку на документ. Я работаю над исправлением и буду рад любым предложениям по решению этой проблемы.
10. Z Lu (validat) 05.03.13 15:13
Не сохраняются настройки.

1. Подскажите, какой принцип сохранения настроек? Есть ли привязка к чему-нибудь?
2. Не могу добавить эту обработку в пункт "Обработки" 1С Пр82 УТ 10.3, чтобы
запускать из меню?
3. На компьютере с Win7(64 bit)+OpenOffice при открытии Накладной товаро в формате Excel, пустое окно, а mxl открывается нормально? Win7, 1Cпр82 УТ10.3, MS Office на другом компьютере Excel открывается без проблем.

Форма сохранения позволяет сохранять несколько типов настроек,
но при загрузке всё устанавливается по умолчанию.
Использую ручное указание колонок табл. документа.
11. Z Lu (validat) 05.03.13 15:53
Вот по теме нашёл.
Инструкция "Загрузка справочника номенклатуры в 1С:Бухгалтерия 8 (ред.2.0) из прайс-листа в Excel" находиться теперь здесь:
http://www.online-ufa.ru/content/articles/...m_excel_part_1/

Загрузка справочника номенклатуры в 1С:Управление торговлей 8 (ред.10.3) из прайс-листа в Excel, здесь:
http://www.online-ufa.ru/content/articles/...m_excel_part_2/

Загрузка приходной накладной в 1С Управление торговлей 8 (ред.10.3) из приходной накладной поставщика в Excel, здесь:
http://www.online-ufa.ru/content/articles/...m_excel_part_3/
12. Z Lu (validat) 06.03.13 01:17
Не сохраняются настройки. Как правильно добавить обработку UploadFromTableDocument в Сервис-Внешние печатные формы и обработки-Внешние обработки заполнения табличных частей?

1. Подскажите, какой принцип сохранения настроек? Есть ли привязка к чему-нибудь?
2. Не могу добавить эту обработку в пункт "Обработки" 1С Пр82 УТ 10.3, чтобы
запускать из меню?
3. На компьютере с Win7(64 bit)+OpenOffice при открытии Накладной товаро в формате Excel, пустое окно, а mxl открывается нормально? Win7, 1Cпр82 УТ10.3, MS Office на другом компьютере Excel открывается без проблем.

Форма сохранения позволяет сохранять несколько типов настроек,
но при загрузке всё устанавливается по умолчанию.
Использую ручное указание колонок табл. документа.
13. Антон Губарьков (rugubara) 06.03.13 09:04
Добрый день
мне бесполезно задавать вопросы про саму обработку - её писала 1С. Я всего лишь нашел способ вставить её в панель действий табличной части документов в УТ 10.3

К сожалению ,с вашими вопросами помочь не могу :-(
14. Артём Рогов (ben_art) 01.06.13 23:22
Так получается толку от добавления никакого ?
15. sumixam (sumixam) 07.06.13 13:01
ПОМОГИТЕ!!!

Пытаюсь загрузить данные из одной таб части документа в другую этого же документа вылазит ошибка
Запрос = Новый Запрос;
Запрос.Текст = "Выбрать * ИЗ Документ.РеализацияТоваровУслуг.Товары как Реал Где реал.ссылка = &ЭтотОбьект";
Запрос.УстановитьПараметр("ЭтотОбьект",ЭтотОбьект);
ЭтотОбьект.Товары1.Загрузить(Запрос.Выполнить().Выгрузить());

{Форма.Форма.Форма(13)}: Ошибка при вызове метода контекста (Загрузить)
ЭтотОбьект.Товары1.Загрузить(Запрос.Выполнить().Выгрузить());
по причине:
Объект недоступен для изменения.
16. sumixam (sumixam) 07.06.13 13:38
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа