Имя: Пароль:
1C
1С v8
Ввод на основании нескольких документов
0 Okulist
 
04.05.21
12:04
Помоги, пожалуйста, неопытному. Проблема: Создаю в конфигураторе документ А. Вводится он на основании документа В и С. Все делаю через конструктор. Табличная часть документа А заполняется почти вся на основании табличной части документа В. Тут все ок у меня. А вот одна колонка в табл части дока А должна вводится на основании реквизита документа С. Вот тут у меня конструктор не выполняет.

Если ТипЗнч(ДанныеЗаполнения) = Тип("СправочникСсылка.Номенклатура") Тогда
        // Заполнение шапки

    ИначеЕсли ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда
        // Заполнение шапки
        Контрагент = ДанныеЗаполнения.Контрагент;
        Для Каждого ТекСтрокаТовары Из ДанныеЗаполнения.Товары Цикл
            НоваяСтрока = Товары.Добавить();

Справочник.Номенклатура  - это как раз документ С. Конструктор просто оставляет пустым Тогда...и переходит к обходу строк из дока В
Вопрос: как заполнить ту строку табличной части дока А на основании реквизита дока С? тип данных совпадает
1 acht
 
04.05.21
12:09
> Справочник.Номенклатура  - это как раз документ
шта?
2 mikecool
 
04.05.21
12:12
ник напрашивается на комплименты )))
(0) нарисуй на бумаге - что ты хочешь получить, облеки рисунок в алгоритм и тогда все будет понятно
3 Okulist
 
04.05.21
12:15
(1) документ - обозначение образное, не относящееся к конкретному виду. В начале я просто обозначил образно задачу без привязки к конкретике. думаю, в данном случае неважно С - документ или справочник.
4 Okulist
 
04.05.21
12:17
(2) так мне и так все понятно. грубо говоря, 6 строк табл части из документа А вводятся на основании табличной части дока В. Но одна строка табличной части дока А (7-ая) должна вводится на основании реквизита из С (в моем случае это уже справочник). вот эта 7-ая и не заполняется
5 hhhh
 
04.05.21
12:20
(4) но как у тебя ДанныеЗаполнения одновременно имеет два разных значения? Это невозможно, нарушение всех законов физики. ДанныеЗаполнения - это или то или это. Определись.
6 acht
 
04.05.21
12:20
(3) > документ - обозначение образное, не относящееся к конкретному виду.
А голова — предмет тёмный, исследованию не подлежит.

(4) > на основании реквизита из С
Как ты собираешься передавать B и C внутрь обработчика заполнения?
7 Жан Пердежон
 
04.05.21
12:20
(4) а ты подумал, как у тебя в ДанныеЗаполнения окажутся 2 твоих "документа"?
намекну: это надо будет делать программно и скорее всего тип у ДанныхЗаполнения будет в твоем случае структура
8 Okulist
 
04.05.21
12:25
Я не то что не подумал, я пока только учусь и не совсем во всем толком разбираюсь. Поэтому и попросил помощи. вопрос можно ли один документ заполнять на основании двух через конструктор? если автоматически это не получается, как я уже понял, то как это прописать самому?
9 ДенисЧ
 
04.05.21
12:26
(8) Конструкторы вообще должны быть преданы анафеме. А те, кто их использует - публичному аутодафе на 10 лет с конфискацией и без права.
10 hhhh
 
04.05.21
12:31
(8) ну вот это сразу выкинь "Вводится он на основании документа В и С".
У тебя 2 варианта:
1. Вводится он на основании документа В, а в документе В есть ссылка на документ С.
2. Вводится он на основании документа С, а в документе С есть ссылка на документ В.
11 Okulist
 
04.05.21
12:35
(10) Спасибо, понятно. Как в документе В сделать ссылку на документ С?
12 acanta
 
04.05.21
12:35
Как если два документа в одном журнале и могут быть выделены мышкой в список элементов, то кнопка ввода на основании все равно не увидит их. А жаль..
13 hhhh
 
04.05.21
13:06
(11) а как вы ссылку на Контрагента сделали? Типа русской рулетки? Написали и ждете, выстрелит, не выстрелит?
14 Новый1сник2
 
04.05.21
13:10
(0) в документ А, добавь ссылку на документ С, и при выборе С, до заполни остальные реквизиты
15 Новый1сник2
 
04.05.21
13:12
(0) или как в (10)
16 Okulist
 
04.05.21
13:39
(13) контрагент - это из дока В. Уже писал, что там все заполнил через конструктор. Теперь же нужно без конструктора подключить второй документ (справочник), вот с этим трудность у меня лично
17 Cthulhu
 
04.05.21
14:13
Документ(В) "Цвет для лимонада" - таб.часть = химикаты
Документ(С) "Фркутовая добавка" - реквизит "добавка" = "авокадо"/"лимон"/"яблоко"/итд
Создаем НЕ на основании Документ(Ё) "Спецификация лимонного лимонада", два реквизита "Цвет" тип Документ(В) и "Фкус" тип Документ(С). Вот на основании этого Документа(Ё) и мутим ввод на основании Документа(А) "Выпуск литра лимонада".
18 Okulist
 
04.05.21
15:38
(17)  я так понимая речь уже о ручном вводе? Ведь конструктор не заполнит сам целую табл часть дока А на основании одного из реквизитов дока Ё
19 hhhh
 
04.05.21
16:01
(16) если бы там не было ссылка на контрагент в документе А, то тогда она бы никогда не заполнилась. Правильно?
Значит, вы сначала создали ссылку на контрагента в документе А, а потом, на втором этапе, заполнили ее из документа В.
Вы сами создали, значит, вы сделали это. Создайте теперь точно такую же ссылку, но не на контрагента, а на документ.
20 Okulist
 
04.05.21
16:21
(19) Реквизит Контрагент из дока А у меня заполнился реквизитом из дока В. Я же пишу, что тут вообще нет проблем. Я знаю, что в свойствах реквизита можно поставить тип ссылку на документ. Проблема возникла с тем, чтобы заполнить одну строку табличной части из дока А реквизитом из совсем другого уже документа.