Форум программистов, компьютерный форум, киберфорум
Наши страницы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.95/20: Рейтинг темы: голосов - 20, средняя оценка - 4.95
D1nochka
0 / 0 / 0
Регистрация: 27.08.2013
Сообщений: 11
1

Внешняя обработка, не получается загрузить данные в табличную часть документа

27.08.2013, 10:41. Просмотров 3962. Ответов 8
Метки нет (Все метки)

Здравствуйте!
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.08.2013, 10:41
Ответы с готовыми решениями:

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

Как выгрузить данные из таблицы значений в табличную часть документа?
Как можно выгрузить данные из таблицы значений в табличную часть документа? Есть какая-нибудь ф-я...

Табличная Часть Документа В Табличную Часть Другого Документа.
Есть документ "служебная записка" с ТЧ товары...нужно при заполнении нового документа "заказ" в ТЧ...

1С 8.0 Добавление в табличную часть документа
Конструкция: Доставка = Документы.Доставка.СоздатьДокумент();...

Создание документа: как заполнить табличную часть?
Документ без заполнения табличной части я создавать научился. А вот как заполнять таблицу - не...

8
SonicQ
283 / 183 / 18
Регистрация: 20.02.2012
Сообщений: 921
27.08.2013, 10:48 2
Привет!
0
D1nochka
0 / 0 / 0
Регистрация: 27.08.2013
Сообщений: 11
27.08.2013, 10:52  [ТС] 3
Оговорюсь сразу, я в этом языке, абсолютный новичок, но очень надо сделать это задание. Поэтому, пожалуйста, кто сможет - помогите.

Задача состоит в следующем: есть почта, на которую приходят заказы от покупателей, необходимо эти заказы оттуда вытаскивать и создавать документы "Заказ покупателя". Создавать необходимо таким образом, чтобы в форме документа заполнялась табличная часть из того что в сообщении приходит, а шапка уже заполняется вручную.

Так как в конфигурации (Управление Предприятием) нельзя ничего менять, то было решено делать внешнюю обработку. То есть выглядит это примерно так, пользователь открывает внешнюю обработку, допустим нажимает на кнопку и у него появляются заполненные формы (столько, сколько заказов в почте).

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

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

Пожалуйста, помогите кто чем может
0
Xomych
812 / 625 / 102
Регистрация: 01.11.2012
Сообщений: 2,247
27.08.2013, 11:33 4
Так в чём проблема-то конкретная?
Управлямое приложение или обычное, можно посмотреть в конфигураторе, в свойствах конфигурации, Параметр Основной режим зауска
0
27.08.2013, 11:33
D1nochka
0 / 0 / 0
Регистрация: 27.08.2013
Сообщений: 11
27.08.2013, 20:21  [ТС] 5
Посмотрела, у меня основной режим запуска: "Обычное приложение".

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

Я пробовала вот так, где то нашла:

1C
1
2
3
4
5
    СтрТовары = Новый Структура("Номенклатура", "Сумочка T3136-1 черная/черная");
        СтруктураСоответствия = Новый Структура("Товары", СтрТовары);
    Параметры = Новый Структура();
    Параметры.Вставить("ЗначенияЗаполнения", СтрТовары);
    Форма = ОткрытьФорму("Документ.ЗаказПокупателя.Форма.ФормаДокумента", Параметры);
0
Xomych
812 / 625 / 102
Регистрация: 01.11.2012
Сообщений: 2,247
27.08.2013, 22:21 6
Вы должны создать документ, а потом заполнять его табличную часть.
ТЧ заполняется из справочника товаров, соответсвенно по какому признаку вы из заказа должны находить товар в справочнике? Обычно это код.
Вот мой пример заполнения документа из dbf-файла (я отсюда убрал лишнее, на основе этого можете своё попробовать)
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
        db=Новый XBase(Кат+"cashsail.dbf",,true); 
        if db.КодОшибки()<>0 then continue endif;
        Д=Документы.Чек.СоздатьДокумент(); //создаем новый документ 
        ЧЧ=""; 
        while НЕ db.ВКонце() do
            Смена=Число(db.ZNUMBER);
            Чек=Число(db.CHECKNUMBE);
                КТ=db.CARDARTICU;
                     //шапку конечно надо заполнять не в цикле, но у меня тут другой алгоритм я просто лишнее стёр (но для примера подойдет
            СтрДат=Left(Формат(db.Date,"ДФ=ггггММддЧЧммсс"),8)+Формат(db.Time,"ЧЦ=4;ЧВН=;ЧГ=0")+"00";               
            Д.Дата=Дата(СтрДат);
            Д.Склад=ОбщиеПроцедурыИФункции.ПолучитьЭлСпрПоКоду("Склады",Число(db.UsingIndex));
            Д.Касса=Касса;
            Д.Смена=Смена;
            Д.Чек=Чек;
            Д.ВидЧека=?(db.Operation=0,Перечисления.ВидЧека.Возврат,Перечисления.ВидЧека.Продажа);
            //закончили заполнять шапку
 
            //Заполняем ТЧ Можно использовать не Вставить, а Добавить (но у меня тут своё)
            Тов=ОбщиеПроцедурыИФункции.ПолучитьЭлСпрПоКоду("Товары",КТ); //находим товар в справочнике по коду
            ТЧ=Д.Товары.Вставить(Число(db.ID));
            ТЧ.Товар=Тов;
            ТЧ.Количество=db.Quantity;
            ТЧ.Цена=db.PriceRub;
            ТЧ.Сумма=db.TotalRub;
            ТЧ.СуммаБезСкидки=ТЧ.Количество*ТЧ.Цена;
            закончили заполнять ТЧ
            db.Следующая(); 
        enddo;  
        Д.Записать(РежимЗаписиДокумента.Проведение); //Записали и провели документ
        db.ЗакрытьФайл(); 
    enddo;
1
D1nochka
0 / 0 / 0
Регистрация: 27.08.2013
Сообщений: 11
27.08.2013, 22:56  [ТС] 7
Спасибо, попробую так и потом отпишусь.

Но у меня возник вопрос: у Вас здесь документ после заполнения сразу записывается и проводится, а могу ли я вместо этого просто открыть форму этого документа (конечно с отображением уже заполненной ТЧ), а потом уже сама его провести?

Вопрос просто в том, могу я так сделать или нет)
0
Dethmontt
Модератор
Эксперт 1С
2684 / 2464 / 428
Регистрация: 10.03.2011
Сообщений: 8,846
Записей в блоге: 1
Завершенные тесты: 1
28.08.2013, 00:15 8
Цитата Сообщение от D1nochka Посмотреть сообщение
Но у меня возник вопрос: у Вас здесь документ после заполнения сразу записывается и проводится, а могу ли я вместо этого просто открыть форму этого документа (конечно с отображением уже заполненной ТЧ), а потом уже сама его провести?
Вопрос просто в том, могу я так сделать или нет)
Можно

Вместо:
1C
1
Д.Записать(РежимЗаписиДокумента.Проведение); //Записали и провели документ
например так:
1C
1
ОткрытьЗначение(Д);
1
D1nochka
0 / 0 / 0
Регистрация: 27.08.2013
Сообщений: 11
05.09.2013, 21:19  [ТС] 9
Вот наконец то дошли руки, всё работает)

Спасибо всем большое!
0
05.09.2013, 21:19
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2013, 21:19

Запрос Который Должен Заполнить Табличную Часть Документа
Доброго времени суток. Задание на этот раз такое: По кнопке «Заполнить» в табличную часть...

Перенос данных из справочника в табличную часть формы документа
Здравствуйте. Создаю документ в конфигурации Бухгалтерия предприятия, редакция 2.0 (2.0.43.6) на...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru