Имя: Пароль:
1C
 
Как программно открыть форму нового документа и заполнить табличные части?
,
0 DJ Anthon
 
20.01.22
12:03
В инете нет ни одного рабочего примера. В СП написано, что это сделать нельзя. Или написано, вот я передаю туда число и ссылку, а как передать табличную часть? Её же на клиенте нет.
А форму на сервер не передашь. Или передашь объект формы, а он только для чтения. Я пытаюсь сделать заполнение документа на основании другого документа через подключаемую обработку заполнения, не трогая код.
Через ОткрытьФорму или ПолучитьФорму не получается. ДанныеЗаполнения = Неопределено, как и написано в СП, а как их заполнить, там не написано.
1 Ёпрст
 
20.01.22
12:10
(0) ОФ или УФ.. если что, и там и там можно
2 Ёпрст
 
20.01.22
12:10
?
3 Garykom
 
гуру
20.01.22
12:13
(0) "Концепция изменилась" погугли

И поменяй ее заранее
Не надо открывать форму нового и что то там пытаться
Надо в базе создать документ, записать со всеми ТЧ и затем открой его если надо юзеру
4 DJ Anthon
 
20.01.22
12:13
УФ
5 DJ Anthon
 
20.01.22
12:14
(3) да, это элементарно. но ему тогда присвоится номер, а они должны идти по порядку. он может полдня заполнять этот документ. и потом передумать. что, мне тогда его, удалять? мне не нужна такая концепция
6 Garykom
 
гуру
20.01.22
12:16
(5) А вам не нужны номера по порядку. Это неправильная и бесполезно-ненужная концепция.
7 Garykom
 
гуру
20.01.22
12:16
(6)+ Вот дублей номеров быть не должно. А на пропуски глубоко пофиг.
8 DJ Anthon
 
20.01.22
12:17
(6) нужны, это отчетные документы
9 Garykom
 
гуру
20.01.22
12:18
Для особо вумных номер документа при записи присваивай из резервных
Только учти чтобы нумерация новых не сбилась
А уже когда юзер дал отмашку то номер меняй на правильный
10 Garykom
 
гуру
20.01.22
12:18
(8) Не нужны. Спорим не сможешь доказать нормативкой?
11 Ёпрст
 
20.01.22
12:18
(4) если можешь менять код модуля дока, то так:


&НаКлиенте
Процедура ОткрытьНечтоНовое(Команда)
    
    
    СтруктураПараметры = Новый Структура;
    Структура = Новый Структура;
    Структура.Вставить("ТабличнаяЧасть",ТвояТабличка);
    Структура.Вставить("ССылка",Объект.Ссылка);//типа основание
    
    
    СтруктураПараметры = Новый Структура;
    СтруктураПараметры.Вставить("Основание", Структура);
    ОткрытьФорму("Документ.ТвойЛокумент.ФормаОбъекта", СтруктураПараметры);
12 Ёпрст
 
20.01.22
12:19
в модкле дтвоегоДокумента так:
13 Ёпрст
 
20.01.22
12:20

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
    
    Если ТипЗнч(ДанныеЗаполнения)=Тип("Структура") Тогда
        ЗаполнитьЗначенияСвойств(ЭтотОбъект,ДанныеЗаполнения.ССылка);
        ТвояТЧ.Загрузить(ДанныеЗаполнения.ТабличнаяЧасть);            
    
    КонецЕсли;    
14 Kassern
 
20.01.22
12:20
(0) "В инете нет ни одного рабочего примера." я как минимум несколько раз в подобных ветках тут писал пример подобного заполнения
15 DJ Anthon
 
20.01.22
12:22
(11) (13) у меня именно так
ДанныеЗаполнения = неопределено
16 Ёпрст
 
20.01.22
12:23
(15) та ну ? :)
Код покажи свой
17 Kassern
 
20.01.22
12:24
(0) нажимаете кнопочку Я в правом верхнем углу данного топика и находите 7 строчку выдачи, там есть пример программного заполнения и открытия документа
18 DJ Anthon
 
20.01.22
12:25
(10) мне не надо ничего доказывать, это мне так заказали. да, там с номерами все что угодно может твориться, но требуют от меня именно так. и это работает, если делать все интерактивно. а программно - хер
19 1Сергей
 
20.01.22
12:27
(3) тупой подход
20 Trimax
 
20.01.22
12:30
ДокументПоступления=КнопкаВыполнитьПереносПоступленияНаСервере(Номер);
                
                
                ПараметрыФормы = Новый Структура("Ключ", ДокументПоступления);
                ОткрытьЗначение(ДокументПоступления);
                Ключ = Новый Структура("Ключ", ДокументПоступления);
                Форма = ПолучитьФорму("Документ.ПоступлениеТоваровУслуг.ФормаОбъекта", Ключ);
                РеквизитыСФ = УчетНДСКлиент.СоздатьСчетФактуруПолученный(Форма, Ложь);
                
                Если РеквизитыСФ <> Неопределено Тогда
                    ПоступлениеТоваровУслугФормыКлиентСервер.ЗаполнитьРеквизитыПроСчетФактуру(Форма, РеквизитыСФ);
                КонецЕсли;

Примерный код открытия формы созданого програмно документа (у меня это переброска дока по СОМ из самописки) с автоматической выпиской СФ через Общий модуль.
21 Garykom
 
гуру
20.01.22
12:35
(20) "по СОМ"
мдя
22 Kassern
 
20.01.22
12:36
(21) то ли дело, через GO документы перебрасывать)
23 Garykom
 
гуру
20.01.22
12:37
(22) Причем тут Golang ? Перебрасывать лучше через http-сервисы
24 Kassern
 
20.01.22
12:40
(23) как причем? Чтобы было модно, молодежно) А так можно регламентно xml/json выплюнуть с доками и так же загружать.
25 Garykom
 
гуру
20.01.22
12:40
(24) онлайна нету
26 Trimax
 
20.01.22
12:41
(23) В 7.7 http-сервисы? Подскажи.
27 Garykom
 
гуру
20.01.22
12:41
Пока некто сам не наступит на грабли с COM-обменом понял что бесполезно доказывать
28 Garykom
 
гуру
20.01.22
12:41
(26) Ты не поверишь
29 Kassern
 
20.01.22
12:44
(27) я прекрасно понимаю минусы ком обмена и стараюсь свести к минимуму подобные соединения. Просто "онлайн" не всегда нужен, а история обмена с файликами очень даже может пригодиться. Да и не всегда в одной сети находятся базы, а выставлять задницу 1с наружу не очень-то хочется.
30 Gucci76
 
20.01.22
12:45
(0) Если не секрет, то что за документ? В ЗУП наверно?
31 DJ Anthon
 
20.01.22
12:46
(13) я одну структуру использовал, а не две... ладно, хотя бы так. сделаю через расширение, потому что заполнение табличной части ложится на процедуру ОбработкаЗаполнения, а она есть, но не работает так, как нужно. я хотел заполнить ТЧ, не трогая эту процедуру. ладно, забейте, спасибо
32 Trimax
 
20.01.22
12:47
(27) Не видел/не сталкивался с проблемами. Раз в неделю запустили обработку, она перетащила нужные данные. Алес. Работы на 1час.
33 DJ Anthon
 
20.01.22
12:47
(30) это чисто наши внутренние документы с нашими нумерациями и прочими вещами. но все сделано на основе торговли и я уже год не лазил в код, забыл все )
34 Ёпрст
 
20.01.22
13:00
(31) можно и не трогая можуль объекта дока, через КопированиеДанныхФормы слепить еще
35 Garykom
 
гуру
20.01.22
13:02
(29) Обмен файликами легко и просто переводится на http
А вот com хрен переведешь ибо там иначе алгоритм
36 Garykom
 
гуру
20.01.22
13:03
(32) Угу. А потом на одном сервере com не поднимается никак, другая база в облаке-фреше и привет
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.