Как открыть новый документ и заполнить его табличную часть?

11.03.07

Разработка - Работа с интерфейсом

Программно, не изменяя модуль формы документа.
Как открыть новый документ и заполнить его табличную часть?

Можно через передаваемый контекст передать объект "ТаблицаЗначений", и обработать его в модуле формы документа в процедуре ВводНового().

А если нет возможности менять модуль формы? Казалось бы, через тот же контекст:
ОткрытьФорму("Документ.<ВидДокумента>",НовДокКонтекст); 
  и далее оперировать НовДокКонтекст-ом,
типа:
 
НовДокКонтекст.ЗагрузитьТабличнуюЧасть(ТаблЧасть);


или
 
НовДокКонтекст.НоваяСтрока(); 

Но это не работает.

Идея открытия нового документа с заполненной табличной частью, - через открытие журнала документов, и эмуляции клавиши F9 (объект WSH), то есть:

1. Создаем документ,заполняем его табличную часть, сохраняем его.
2. Открываем журнал документов, позиционируемся на записанном документе.
3. Эмулируем F9 (создастся документ-копия с такой-же табличной частью).
4. Закрываем журнал документов.
5. Удаляем уже ненужный документ-оригинал.

// ВидДок - вид документа
// СоздДок - созданный и записанный документ, переменная модуля

СоздДок=СоздатьОбъект("Документ."+ВидДок);
// заполнение шапки и ТЧ
СоздДок.Записать();
// создали документ

ОткрытьФорму("Журнал."    + ВидДок,Конт);
// открыли журнал

Нач1= Мин(СоздДок.ДатаДок,Конт.НачалоИнтервала());
Кон1= Макс(СоздДок.ДатаДок,Конт.КонецИнтервала());

Конт.УстановитьИнтервал(Нач1,Кон1);
Конт.АктивизироватьОбъект(СоздДок.ТекущийДокумент());
// позиционировались на документе            

Вс= CreateObject("WScript.Shell");
Вс.SendKeys(""); // в кавычках Sendkeys:  в фигурных скобках  F9
// эмуляция F9

Конт.Форма.Закрыть();
// закрыли журнал документов

Форма.ОбработкаОжидания("УдалимДокумент",1);
// после задержки запустим процедуру УдалимДокумент()



Процедура УдалимДокумент()
    СоздДок.Удалить(1);
    Форма.ОбработкаОжидания("",0);
КонецПроцедуры    


Недостатки этого метода в том, что мы не знаем как отрабатывается признак копирования при вводе нового документа, возможно изменение реквизитов шапки значениями, принятыми по умолчанию, изменить эти реквизиты обратно тоже никак, - новый документ был открыт "интерактивно", его контекст неизвестен.
Еще один недостаток - номер нового документа идет с инкрементом +2 (последний документ был нами удален).

См. также

Работа с интерфейсом Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Создание и использование на формах в среде 1С 7.7 прогрессбара, индикатора, как в 1С 8.Х для контроля над длительными процессами. Реализовано средствами языка программирования 1С 7.7.

1 стартмани

06.06.2024    698    1    user1416274    17    

2

Работа с интерфейсом Логистика, склад и ТМЦ Системный администратор Программист Пользователь Платформа 1С v7.7 1С:Торговля и склад 7.7 Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Решение для разработчика и конечного пользователя для работы с фотографиями номенклатуры: систематизация, хранение, отображение, а также выгрузка на Яндекс-Диск и FTP (кроме версии лайт). Поддерживаются графические форматы: bmp, jpg, gif, tiff, а также png - не поддерживаемый штатными средствами 1С. Выполнено без использования внешних компонент (кроме функции выгрузки на FTP). Поставляется как в виде пустой конфигурации с набором объектов и модулей для работы с фото, так и в виде обновления к 1С:Торговля и склад 7.7. Выполнено в двух версиях: "полная" и "лайт".

5000 руб.

18.10.2022    5845    1    45    

4

Инструментарий разработчика Работа с интерфейсом Программист Платформа 1С v7.7 Абонемент ($m)

Обработка с фрагментами кода для программного использования набора цветов из коллекции WebЦвета 1с версии 8+ в 1с версии 77. Требуется предварительное подключение сторонней библиотеки FormEх. Будет полезно программистам 1с 77, 1с 8. Да и вообще при программировании на любом языке при потребности использовать коллекцию цветов WebЦвета.

1 стартмани

30.03.2022    4958    2    igor7777    4    

6

Работа с интерфейсом Программист Платформа 1С v7.7 Конфигурации 1cv7 Бесплатно (free)

Публикация имеет цель обратить внимание на возможность улучшения интерфейса.

15.12.2021    4835    71    Cерый    13    

7

Работа с интерфейсом Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Простая и удобная внешняя обработка для выбора цвета без применения внешних компонент.

1 стартмани

09.06.2020    7415    4    vap_pig    5    

4

Учет рабочего времени Работа с интерфейсом Программист Бухгалтер Пользователь Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Обработка производственного календаря с возможностью импорта и экспорта xls для 1С 7.7 (7.70.027) без изменения конфигурации.

1 стартмани

18.09.2019    12993    6    Jill    8    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. CheBurator 2712 12.03.07 04:52 Сейчас в теме
нихрена не понятно.
чтобы создать новый документ -
1. Создаем документ,заполняем его табличную часть, сохраняем его.
вопрос: как создать документ в п.1?
..вопрос: если юзеру разрешено запускать обработку - то программно можно создать документ запросто. но вот если юзеру запрещено просматривать журнал - то предложенный метод обломится на раз...
2. support 4453 12.03.07 08:33 Сейчас в теме
"и далее оперировать НовДокКонтекст-ом."
Это возможно, если просто загрузить FormEx.dll
http://www.infostart.ru/projects/218/
3. Shaman100M 1151 12.03.07 09:42 Сейчас в теме
С формексом никто не спорит.

Если юзеру запрещено просматривать журнал, этот метод все равно работает.
Код
ОткрытьФорму("Журнал.<НазваниеЖурнала>"); // скажет "Недостаточно прав"
ОткрытьФорму("Журнал.<ВидДокумента>"); // а вот так тот же журнал (или просто журнал документа) откроется 
Показать полностью
4. andrey995 12.03.07 10:57 Сейчас в теме
хотелось бы иметь компоненту-кусок формекса с одной только этой функцией...
5. АЛьФ 12.03.07 16:07 Сейчас в теме
2(andrey995) За Ваши деньги любые капризы (с)
:)
6. Abadonna 3968 21.03.07 15:17 Сейчас в теме
Альф, твою компоненту хотят поиметь "хотелось бы иметь компоненту-кусок формекса ", а ты говоришь - пожалуйста :)
7. n949eo 13.11.11 19:09 Сейчас в теме
Как-то все замудренно=(
8. i132 123 03.05.12 17:33 Сейчас в теме
Проще воспользоваться контекстом побдора http://infostart.ru/public/121991/
Оставьте свое сообщение