Имя: Пароль:
1C
1С v8
ПТ на основе РТ
0 Singenor
 
23.03.12
12:22
Добрый день. Нужно сделать обработку, которая будет при нажатию на кнопку срабатывать, и заполнять табличные части докуметов( принцип ввода на основании)
Из документа поступление товаров и услуг сделать заполнение таб части Реализации товаров и услуг) может кто помочь?)
1 ДенисЧ
 
23.03.12
12:24
Сколько?
2 DEVIce
 
23.03.12
12:24
1000р - в понедельник будет готово
3 Singenor
 
23.03.12
12:24
не кодом, хотя бы направить на правильный путь)
4 Singenor
 
23.03.12
12:25
писать я буду сам, и сдавать нужно сегодня, так что вариант с покупкой не рассматривается)
5 ДенисЧ
 
23.03.12
12:25
(3) Направляю - процедура ОбработкаЗаполнения(). Там делай, что хочешь.
6 rbcvg
 
23.03.12
12:26
Что за конфа? готовое решение чем не устраивает?
7 DEVIce
 
23.03.12
12:26
(3). А че тут направлять-то - это же элементарно.
8 Singenor
 
23.03.12
12:26
УПП, в готовом решении не могу такого найти
9 Singenor
 
23.03.12
12:27
(7) я пока тока учусь, поэтому такие вещи для меня пока не особо элементарны)))
10 DEVIce
 
23.03.12
12:27
(5). Можно еще внешней обработкой заполнения ТЧ, чтобы не курочить конфигу.
11 Singenor
 
23.03.12
12:28
(7) через внешнюю обработку и нужно
12 DEVIce
 
23.03.12
12:28
(9). Как студенту сделаю скидку 200р., а на полученном решении как раз и посмотришь как делать. :)
13 Maxus43
 
23.03.12
12:28
(9) и всё равно заказывают такие обработки тебе? куда катится мир... сначала на курсы пусть пошлют
14 Singenor
 
23.03.12
12:29
(13) просто задача такая стоит, нужно выполнить, вот и все
15 Maxus43
 
23.03.12
12:30
(14)>(5)
16 DEVIce
 
23.03.12
12:30
Тут понимаешь как бы форум. Если ты хочешь готовое решение получить, то раскошелтся. Если хочешь чтобы тебе как-то помогли, то начинай делать уже сам и задавай вопросы по конкретным местам, которые не получаются.
17 DEVIce
 
23.03.12
12:31
(15). Ему скорее всего нужна обработка заполнения ТЧ.
18 Singenor
 
23.03.12
12:31
(16) я не написал, чтобы мне сделали готовое решение, я спросил с чего начать, сейчас и буду заниматься этим)
19 Maxus43
 
23.03.12
12:33
(18) определись с вариантом решения. обработка внешняя, изменение документа или ещё что
20 Singenor
 
23.03.12
12:34
(19) Внешняя Обработка, которая создает кнопку, при нажатию на которую происходит заполнение табличной части документа Поступление товаров на основании документа Реализация товаров
21 badboychik
 
23.03.12
12:35
что мешает пример такой обработки скачать с инета или на ИТС почитать статейку
22 Singenor
 
23.03.12
12:36
не могу найти пример такой)
23 Singenor
 
23.03.12
12:48
я вот знаете че не пойму, вот ТЧ это табличная часть а ТП табличное поле, как это объяснить 1ске, чтобы она не писала, что переменные не определены?
24 DEVIce
 
23.03.12
13:32
(23). Образование программерское у тебя?
25 IamAlexy
 
23.03.12
13:33
бгыыыы
на инфасрате тыщи таких поделий..
26 Singenor
 
23.03.12
13:35
На инфосрате надо сутки ждать, чтобы сообщения засчитали, чтобы что то качать)
27 Singenor
 
23.03.12
13:43
(24) зачем писать такие глупые вопросы? когда можно или ответить не знаю, или сразу по существу, к чему лишней воды столько?
28 Maxus43
 
23.03.12
13:44
(27) не вовремя зарегистрировался. Пятница сегодня
29 Grobik
 
23.03.12
13:44
(26) Можно поклянчить как Stamper всегда делает. Или поклянчить на руборде.
30 DEVIce
 
23.03.12
13:58
(27). Я-то как раз знаю как делать. :)
А вопрос задаю, чтобы понять стоит ли начинать объяснять или посоветовать получить соотвествующие базовые знания в профильном учебном заведении.
31 DEVIce
 
23.03.12
13:58
Ну и по существу пока нечего писать ибо пока нет никакого существа кроме того что надо обработку.
32 Maxus43
 
23.03.12
14:00
// Обязательная экспортная процедура заполнения табличной части
//
// Параметры
//    Объект – ДокументОбъект, СправочникОбъект. От куда был произведен вызов процедуры заполнения внешней обработки;
//    ИмяТабличнойЧасти  – Строка. Имя табличной части, для которой вызвана обработка.
//    ТабличноеПолеОбъекта  – Элемент формы: Табличное поле. Табличное поле формы, для которого вызвана обработка.
//
Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПолеОбъекта) Экспорт


вот и всё. внешняя обработка с такой процедурой экспортной. В ней производиш нужные действия.
в справочнике внешние обработки регистрируеш её, указываеш документ и его таб часть.
33 Singenor
 
23.03.12
14:06
Процедура Инициализировать (Объект, ИмяТабличнойЧасти, ТабличноеПолеОбъекта) Экспорт
   
   СсылкаНаОбъект = Объект;
   Форма = ЭтотОбъект.ПолучитьФорму("форма");
   Форма.Открыть();    
   
КонецПроцедуры


и потом в модуле формы назначаю действия для кнопки и всего такого так?
34 Singenor
 
23.03.12
14:08
в справочнике внешние обработки регистрируеш её,
долго думал, не понял смысла фразы, каком справочнике внешние обработки?
35 Maxus43
 
23.03.12
14:10
не трогай документ сам. в предприятии есть справочник - Внешние обработки. зайди туда, добавь элемент, загрузи свою обработку и в ТЧ напиши что она для такого-то документа, для такойто таб части
36 Maxus43
 
23.03.12
14:11
в доке автоматом появится кнопка в "заполнить" у ТЧ - с именем твоей обработки
37 Singenor
 
23.03.12
14:12
(36), а ну это то понятно, я знаю, но сначала надо сделать ее)))
38 Singenor
 
23.03.12
14:12
Процедура ОсновныеДействияФормыВыполнить(Кнопка)
Если ТипЗнч(объектДокумент) = Тип("ДокументОбъект.РеализацияТоваров") Тогда
Если ОчищатьТЧ Тогда
объектДокумент.Товары.Очистить();
КонецЕсли;
Для каждого стр из ТП Цикл
Попытка
тов = объектДокумент.Товары.Добавить();
тов.(что передать тут, чтобы в этой строчке он считывал данные с другого документа, и затем выдавал их)
Исключение

КонецПопытки;
КонецЦикла;
КонецЕсли;


КонецПроцедуры
39 Maxus43
 
23.03.12
14:13
с какого другого документа? откуда обработка его возьмёт?
40 DEVIce
 
23.03.12
14:14
(34). СсылкаНаОбъект не нужна для обработки ТЧ, это в печ. формах внешних используется. Тут вообще предполагается, что документ еще не записан и никаких ссылок на него нет.
Регистрировать в УПП можно через Сервис / Доп. внешние отчеты и обрабтки. Чтобы при регистрации не мутить с выбором документа и ТЧ, можно в обработке задать параметры авторегистрации следующим образом. Создаешь макет Параметры_Авторегистрации, в каждой строке в первой колонке пишешь полный идентификатор объекта (Документы.РеализацияТоваровУслуг), во второй колонке имя ТЧ, так можно настроить реистрацию сразу на несколько объектов, причем автоматическую.
41 Singenor
 
23.03.12
14:15
(39) Ну мне ведь нужно чтобы при нажатии на кнопку в документе Поступление товаров, выводилось окошко с журналом документов Реализация товаров, я выбирал нужный, и на основании него заполнялась ТЧ
42 DEVIce
 
23.03.12
14:16
(38). Так как ТЧ ПТУ и РТУ сильно похожи, почти идентичны, то лучше пользоваться методом ЗаполнитьЗначенияСвойств(СтрокаПТУ, СтрокаРТУ).
43 Maxus43
 
23.03.12
14:17
Форма = Документ.РеализацияТоваровУслуг.ПолучитьФормуВыбора();
Гы =  Форма.ОткрытьМодально();
Если Гы = Неопределено Тогда
//Не выбрали док
Иначе
Сообщить(Гы);
КонецЕсли;
44 Singenor
 
23.03.12
14:19
(43) это насколько я понимаю прописыватеся в модуле объекта, а затем мы идем в модуль формы, где прописываем действия для формы? так тчо ли?
45 Singenor
 
23.03.12
14:23
Процедура ОсновныеДействияФормыВыполнить(Кнопка)
Если ТипЗнч(объектДокумент) = Тип("ДокументОбъект.РеализацияТоваров") Тогда
Если ОчищатьТЧ Тогда
объектДокумент.Товары.Очистить();
КонецЕсли;
Для каждого стр из ТП Цикл
Попытка
тов = объектДокумент.Товары.Добавить();
тов.Номенклатура = стр.Номенклатура;
тов.Количество = стр.Количество;
тов.Коэффициент = 1;
тов.ЕдиницаИзмерения = стр.ЕдИзм;
Исключение

КонецПопытки;
КонецЦикла;
КонецЕсли;


{Форма.Форма.Форма(6,20)}: Переменная не определена (ТП)



где ее обозначить?
46 Maxus43
 
23.03.12
14:24
нафейхуа во внешней обработке вобще в форме что-то писать? в форме у тебя должно быть максимум -

Процедура ОсновныеДействияФормыВыполнить(Кнопка)

Инициализировать(ОбъектРТУ, "Товары", Неопределено);
в обработке данной элементы формы РТУ врятли надо править
47 zak555
 
23.03.12
14:24
что это ?
48 Maxus43
 
23.03.12
14:25
ТабЧасть = ОбъектРТУ[ИмяТабличнойЧасти];
49 Maxus43
 
23.03.12
14:25
ТабЧасть = Объект[ИмяТабличнойЧасти];
50 Singenor
 
23.03.12
14:27
Процедура ОсновныеДействияФормыВыполнить(Кнопка)
ТабЧасть = ДокументОбъект[ИмяТабличнойЧасти];
Инициализировать(ОбъектРТУ, "Товары", Неопределено);
КонецПроцедуры



{Форма.Форма.Форма(2,27)}: Переменная не определена (ИмяТабличнойЧасти)


{Форма.Форма.Форма(3,18)}: Переменная не определена (ОбъектРТУ)
51 Singenor
 
23.03.12
14:27
как с ними поступать?)
52 Maxus43
 
23.03.12
14:28
не, я так не играю... желание быть отладчиком закончилось(
53 Singenor
 
23.03.12
14:28
бред какой то, нихера не понятно
54 DEVIce
 
23.03.12
14:30
(53). Метод Инициализировать не надо из формы вызвать, он вызывается 1С-ной, с него начинается работа.
55 DEVIce
 
23.03.12
14:31
И не надо дословно копировать примеры кода - они не будут работать :).
56 Maxus43
 
23.03.12
14:31
вот именно.
всё что я писал - делай в Инициализировать. выбор формы и т.д.
(54) он хочет сначала отладить... для внешних отчетов - приемлимо, с обработкой заполнения ТЧ - не удобно уже
57 Singenor
 
23.03.12
14:32
Заполнение ТЧ не произведено!
Поле объекта не обнаружено (РеализацияТоваровУслуг)
58 DEVIce
 
23.03.12
14:34
(57). Как все запущено.
59 Maxus43
 
23.03.12
14:35
так тебе тут не поможет никто. только пример тебя спасёт реально работающий, чтоб понять принцип работы
60 Singenor
 
23.03.12
15:43
а где в типовой конфе находится часть, которая отвечает как раз за ввод на основании? ищу уже полтора часа, не могу найти(УПП 1.23)
61 Singenor
 
23.03.12
15:43
1.3.23*
62 Singenor
 
23.03.12
15:51
Заполнение ТЧ не произведено!
Поле объекта не обнаружено (РеализацияТоваровУслуг)
с этим то что делать?
63 sanja26
 
23.03.12
15:52
(60) обработка заполнения. еще раз...
64 Singenor
 
23.03.12
16:39
Перем мСтруктураПараметровДляПолученияДоговора Экспорт;
Перем мВалютаРегламентированногоУчета Экспорт;



Процедура Инициализировать (Объект, ИмяТабличнойЧасти, ТабличноеПолеОбъекта) Экспорт
   
   Форма = Объект.РеализацияТоваровУслуг.ПолучитьФормуВыбора();

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

Процедура ОбработкаЗаполнения(Основание) Экспорт
        ТипОснования = ТипЗнч(Основание);
               ЗаполнениеДокументов.ЗаполнитьШапкуДокументаПоОснованию(Объект, Основание);
       ВидПоступления = Перечисления.ВидыПоступленияТоваров.НаСклад;
       СкладОрдер     = Основание.Склад;

       ОрганизацияКонтрагента = ЗаполнениеДокументов.ПолучитьОрганизациюПоКонтрагенту(Основание.Контрагент);

       Если ЗначениеЗаполнено(ОрганизацияКонтрагента) Тогда
           
           // Документ не отражается в управленческом учете (внутреняя передача товара),
           // поменяем организацию и контрагента местами.
           Организация = ОрганизацияКонтрагента;
           Контрагент  = ЗаполнениеДокументов.ПолучитьКонтрагентаПоОрганизации(Основание.Организация);

           ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ПокупкаКомиссия;

           // Заполним номер и дату вхоящего документа.
           НомерВходящегоДокумента = Основание.Номер;
           ДатаВходящегоДокумента  = Основание.Дата;
           
           ЗаполнениеДокументов.ПриИзмененииЗначенияКонтрагента(Объект, мСтруктураПараметровДляПолученияДоговора);
           
       Иначе
           //переносить контрагента и договор нет смысла при такой цепочке
           Контрагент = Справочники.Контрагенты.ПустаяСсылка();
           ДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
       КонецЕсли;

//        СтруктураКурсаВзаиморасчетов = МодульВалютногоУчета.ПолучитьКурсВалюты(ДоговорКонтрагента.ВалютаВзаиморасчетов, Дата);
//        КурсВзаиморасчетов           = СтруктураКурсаВзаиморасчетов.Курс;
//        КратностьВзаиморасчетов      = СтруктураКурсаВзаиморасчетов.Кратность;

       // Заполним табличные части.
       ЗаполнитьТоварыПоОснованиюРеализация(Основание);
       ЗаполнитьУслугиПоОснованиюРеализация(Основание);
       ЗаполнитьВозвратнуюТаруПоОснованиюРеализация(Основание);

КонецПроцедуры                        
Процедура ЗаполнитьТоварыПоОснованиюРеализация(Основание) Экспорт
   Курс = ЗаполнениеДокументов.КурсДокумента(Объект, мВалютаРегламентированногоУчета);
   Кратность = ЗаполнениеДокументов.КратностьДокумента(, мВалютаРегламентированногоУчета);

   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ДокументОснование", Основание);

   Запрос.Текст =
   "ВЫБРАТЬ
   |    Док.Ссылка.ВалютаДокумента,
   |    ВЫБОР
   |        КОГДА Док.Ссылка.ВалютаДокумента = Док.Ссылка.ДоговорКонтрагента.ВалютаВзаиморасчетов
   |            ТОГДА Док.Ссылка.КурсВзаиморасчетов
   |        ИНАЧЕ 1
   |    КОНЕЦ КАК КурсДокумента,
   |    ВЫБОР
   |        КОГДА Док.Ссылка.ВалютаДокумента = Док.Ссылка.ДоговорКонтрагента.ВалютаВзаиморасчетов
   |            ТОГДА Док.Ссылка.КратностьВзаиморасчетов
   |        ИНАЧЕ 1
   |    КОНЕЦ КАК КратностьДокумента,
   |    Док.Ссылка.УчитыватьНДС,
   |    Док.Ссылка.СуммаВключаетНДС,
   |    Док.Номенклатура,
   |    Док.ЕдиницаИзмерения,
   |    Док.ЕдиницаИзмеренияМест,
   |    Док.Коэффициент,
   |    Док.СтавкаНДС,
   |    Док.Количество,
   |    Док.КоличествоМест,
   |    Док.Сумма,
   |    Док.ХарактеристикаНоменклатуры,
   |    Док.СерияНоменклатуры
   |ИЗ
   |    Документ.РеализацияТоваровУслуг.Товары КАК Док
   |ГДЕ
   |    Док.Ссылка = &ДокументОснование
   |    И (НЕ Док.Номенклатура.Услуга)
   |
   |УПОРЯДОЧИТЬ ПО
   |    Док.НомерСтроки";

   РезультатЗапроса = Запрос.Выполнить();

   Выборка = РезультатЗапроса.Выбрать();
   
   ТекПользователь = глЗначениеПеременной("глТекущийПользователь");
   ЕстьРеквизитПроцентСкидкиНаценки = Ложь;
   ПересчитыватьСкидку = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ТекПользователь, "ПриИзмененииСуммыПересчитыватьСкидку");
   ЕстьРеквизитПроцентАвтоматическихСкидок = Ложь;    
   
   Пока Выборка.Следующий() Цикл

       СтрокаТабличнойЧасти = Объект.Товары.Добавить();

       СтрокаТабличнойЧасти.Номенклатура         = Выборка.Номенклатура;
       СтрокаТабличнойЧасти.Количество           = Выборка.Количество;
       СтрокаТабличнойЧасти.КоличествоМест       = Выборка.КоличествоМест;
       СтрокаТабличнойЧасти.ЕдиницаИзмерения     = Выборка.ЕдиницаИзмерения;
       СтрокаТабличнойЧасти.ЕдиницаИзмеренияМест = Выборка.ЕдиницаИзмеренияМест;
       СтрокаТабличнойЧасти.Коэффициент          = Выборка.Коэффициент;
       СтрокаТабличнойЧасти.СтавкаНДС            = Выборка.СтавкаНДС;

       // Т.к. в Реализации могла быть скидка. то цену рассчитываем от суммы
       СтрокаТабличнойЧасти.Сумма                = Выборка.Сумма;

       // Пересчитаем сумму в валюту документа (может отличаться от валюты основания).
       Сумма = МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(СтрокаТабличнойЧасти.Сумма, Выборка.ВалютаДокумента, Объект.ВалютаДокумента,
                          Выборка.КурсДокумента, Курс,
                          Выборка.КратностьДокумента, Кратность);

       СтрокаТабличнойЧасти.Сумма = Ценообразование.ПересчитатьЦенуПриИзмененииФлаговНалогов(Сумма,
                                        Перечисления.СпособыЗаполненияЦен.ПоЦенамНоменклатуры,
                                        Выборка.УчитыватьНДС И Выборка.СуммаВключаетНДС,
                                        Объект.УчитыватьНДС,
                                        Объект.СуммаВключаетНДС,
                                        УчетНДС.ПолучитьСтавкуНДС(СтрокаТабличнойЧасти.СтавкаНДС));

       ОбработкаТабличныхЧастей.ПриИзмененииСуммыТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, ТекПользователь,,ЕстьРеквизитПроцентСкидкиНаценки,ПересчитыватьСкидку,ЕстьРеквизитПроцентАвтоматическихСкидок,"Товары");
       ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);

       СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры = Выборка.ХарактеристикаНоменклатуры;
       СтрокаТабличнойЧасти.СерияНоменклатуры          = Выборка.СерияНоменклатуры;
       СтрокаТабличнойЧасти.ОтражениеВУСН                = Перечисления.ОтражениеВУСН.Принимаются;
   КонецЦикла;

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



Процедура ЗаполнитьУслугиПоОснованиюРеализация(Основание) Экспорт
   Курс = ЗаполнениеДокументов.КурсДокумента(Объект, мВалютаРегламентированногоУчета);
   Кратность = ЗаполнениеДокументов.КратностьДокумента(Объект, мВалютаРегламентированногоУчета);

   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ДокументОснование", Основание);

   Запрос.Текст =
   "ВЫБРАТЬ
   |    Док.Ссылка.ВалютаДокумента,
   |    ВЫБОР
   |        КОГДА Док.Ссылка.ВалютаДокумента = Док.Ссылка.ДоговорКонтрагента.ВалютаВзаиморасчетов
   |            ТОГДА Док.Ссылка.КурсВзаиморасчетов
   |        ИНАЧЕ 1
   |    КОНЕЦ КАК КурсДокумента,
   |    ВЫБОР
   |        КОГДА Док.Ссылка.ВалютаДокумента = Док.Ссылка.ДоговорКонтрагента.ВалютаВзаиморасчетов
   |            ТОГДА Док.Ссылка.КратностьВзаиморасчетов
   |        ИНАЧЕ 1
   |    КОНЕЦ КАК КратностьДокумента,
   |    Док.Ссылка.УчитыватьНДС,
   |    Док.Ссылка.СуммаВключаетНДС,
   |    Док.Номенклатура,
   |    Док.Содержание,
   |    Док.СтавкаНДС,
   |    Док.Количество,
   |    Док.Сумма
   |ИЗ
   |    Документ.РеализацияТоваровУслуг.Услуги КАК Док
   |ГДЕ
   |    Док.Ссылка = &ДокументОснование
   |    И Док.Номенклатура.Услуга
   |
   |УПОРЯДОЧИТЬ ПО
   |    Док.НомерСтроки";

   РезультатЗапроса = Запрос.Выполнить();

   Выборка = РезультатЗапроса.Выбрать();
   
   ТекПользователь = глЗначениеПеременной("глТекущийПользователь");
   ЕстьРеквизитПроцентСкидкиНаценки = Ложь;
   ПересчитыватьСкидку = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ТекПользователь, "ПриИзмененииСуммыПересчитыватьСкидку");
   ЕстьРеквизитПроцентАвтоматическихСкидок = Ложь;    
   
   Пока Выборка.Следующий() Цикл

       СтрокаТабличнойЧасти = Объект.Услуги.Добавить();

       СтрокаТабличнойЧасти.Номенклатура         = Выборка.Номенклатура;
       СтрокаТабличнойЧасти.Содержание           = Выборка.Содержание;
       СтрокаТабличнойЧасти.Количество           = Выборка.Количество;
       СтрокаТабличнойЧасти.СтавкаНДС            = Выборка.СтавкаНДС;

       // Т.к. в Реализации могла быть скидка. то цену рассчитываем от суммы
       СтрокаТабличнойЧасти.Сумма                = Выборка.Сумма;

       // Пересчитаем сумму в валюту документа (может отличаться от валюты основания).
       Сумма = МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(СтрокаТабличнойЧасти.Сумма, Выборка.ВалютаДокумента, Объект.ВалютаДокумента,
                          Выборка.КурсДокумента, Курс,
                          Выборка.КратностьДокумента, Кратность);

       СтрокаТабличнойЧасти.Сумма = Ценообразование.ПересчитатьЦенуПриИзмененииФлаговНалогов(Сумма,
                                        Перечисления.СпособыЗаполненияЦен.ПоЦенамНоменклатуры,
                                        Выборка.УчитыватьНДС И Выборка.СуммаВключаетНДС,
                                        Объект.УчитыватьНДС,
                                        Объект.СуммаВключаетНДС,
                                        УчетНДС.ПолучитьСтавкуНДС(СтрокаТабличнойЧасти.СтавкаНДС));

       ОбработкаТабличныхЧастей.ПриИзмененииСуммыТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, ТекПользователь,,ЕстьРеквизитПроцентСкидкиНаценки,ПересчитыватьСкидку,ЕстьРеквизитПроцентАвтоматическихСкидок,"Услуги");
       ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);

       СтрокаТабличнойЧасти.ОтражениеВУСН                = Перечисления.ОтражениеВУСН.Принимаются;
       
       СтрокаТабличнойЧасти.СтатьяЗатрат = СтрокаТабличнойЧасти.Номенклатура.СтатьяЗатрат;
   
       СтрокаТабличнойЧасти.НоменклатурнаяГруппа = СтрокаТабличнойЧасти.Номенклатура.НоменклатурнаяГруппаЗатрат;

       ЗаполнитьСчетаУчетаВСтрокеТабЧастиРегл(СтрокаТабличнойЧасти, "Услуги", Объект.ОтражатьВБухгалтерскомУчете, Объект.ОтражатьВНалоговомУчете);
       
   КонецЦикла;

КонецПроцедуры
Процедура ЗаполнитьВозвратнуюТаруПоОснованиюРеализация(Основание) Экспорт

   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ДокументОснование",Основание);

   Запрос.Текст =
   "ВЫБРАТЬ
   |    Док.Ссылка.ДоговорКонтрагента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
   |    Док.Ссылка.КурсВзаиморасчетов,
   |    Док.Ссылка.КратностьВзаиморасчетов,
   |    Док.Номенклатура,
   |    Док.Количество,
   |    Док.Цена
   |ИЗ
   |    Документ.РеализацияТоваровУслуг.ВозвратнаяТара КАК Док
   |ГДЕ
   |    Док.Ссылка = &ДокументОснование
   |";

   РезультатЗапроса = Запрос.Выполнить();

   Выборка = РезультатЗапроса.Выбрать();
   Пока Выборка.Следующий() Цикл

       СтрокаВозвратнойТары = Объект.ВозвратнаяТара.Добавить();

       СтрокаВозвратнойТары.Номенклатура     = Выборка.Номенклатура;
       СтрокаВозвратнойТары.Количество       = Выборка.Количество;
       СтрокаВозвратнойТары.Цена             = Выборка.Цена;

       // Пересчитаем цену в валюту взаиморасчетов (в документах договоры могут отличаться).
       Цена = МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(СтрокаВозвратнойТары.Цена,
                         Выборка.ВалютаВзаиморасчетов, Объект.ДоговорКонтрагента.ВалютаВзаиморасчетов,
                         Выборка.КурсВзаиморасчетов, Объект.КурсВзаиморасчетов,
                         Выборка.КратностьВзаиморасчетов, Объект.КратностьВзаиморасчетов);

       ОбработкаТабличныхЧастей.РассчитатьСуммуВозвратнойТарыТабЧасти(СтрокаВозвратнойТары, Объект);

   КонецЦикла;

КонецПроцедуры
Процедура ЗаполнитьСчетаУчетаВСтрокеТабЧастиРегл(СтрокаТЧ, ИмяТабЧасти, ЗаполнятьБУ, ЗаполнятьНУ) Экспорт
   
   Если ИмяТабЧасти = "ОбъектыСтроительства" Тогда
       ЗаполнитьСчетаУчетаВСтрокеТабЧастиОбъектовСтроительства(СтрокаТЧ, ЗаполнятьБУ, ЗаполнятьНУ);
   Иначе
       СчетаУчетаВДокументах.ЗаполнитьСчетаУчетаТабличнойЧасти(ИмяТабЧасти, СтрокаТЧ, ЭтотОбъект, ЗаполнятьБУ, ЗаполнятьНУ);
   КонецЕсли;
   
КонецПроцедуры
Процедура ЗаполнитьСчетаУчетаВСтрокеТабЧастиОбъектовСтроительства(СтрокаТабЧасти, ЗаполнятьБУ, ЗаполнятьНУ) Экспорт

   СчетаУчета = УправлениеВнеоборотнымиАктивами.ПолучитьСчетаУчетаОбъектовСтроительства(Объект.Организация, СтрокаТабЧасти.ОбъектСтроительства);

   Если ЗаполнятьБУ = Истина Тогда
       СтрокаТабЧасти.СчетУчетаБУ  = СчетаУчета.СчетУчетаБУ;
       СтрокаТабЧасти.СчетУчетаНДС = СчетаУчета.СчетУчетаНДС;
   ИначеЕсли ЗаполнятьБУ = Ложь Тогда
       СтрокаТабЧасти.СчетУчетаБУ  = ПланыСчетов.Хозрасчетный.ПустаяСсылка();
       СтрокаТабЧасти.СчетУчетаНДС = ПланыСчетов.Хозрасчетный.ПустаяСсылка();
   КонецЕсли;

   Если ЗаполнятьНУ = Истина Тогда
       СтрокаТабЧасти.СчетУчетаНУ = БухгалтерскийУчет.ПреобразоватьСчетаБУвСчетНУ(Новый Структура("СчетБУ", СтрокаТабЧасти.СчетУчетаБУ));
   ИначеЕсли ЗаполнятьНУ = Ложь Тогда
       СтрокаТабЧасти.СчетУчетаНУ = ПланыСчетов.Налоговый.ПустаяСсылка();
   КонецЕсли;

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



мСтруктураПараметровДляПолученияДоговора = ЗаполнениеДокументов.ПолучитьСтруктуруПараметровДляПолученияДоговораПокупки();
65 Singenor
 
23.03.12
16:39
все равно выдает ошибку
Заполнение ТЧ не произведено!
Поле объекта не обнаружено (РеализацияТоваровУслуг)
66 Singenor
 
23.03.12
17:36
Значение не является значением объектного типа (ВалютаДокумента)
   Если ДокументОбъект.ВалютаДокумента = ВалютаРегламентированногоУчета ИЛИ ДокументОбъект.ВалютаДокумента.Пустая() Тогда



как исправить?
67 Singenor
 
23.03.12
17:50
ап
68 Singenor
 
23.03.12
18:04
помогите, не много осталось)
69 DEVIce
 
23.03.12
18:25
(68). Ну так сделай раз немного - халявщик хренов.
70 DEVIce
 
23.03.12
18:26
Я тебе к завтрашнему вечеру готов дать обработку уже готовую, под твою задачу полность, ты на ней посмотришь ка чего сделано, чего не понятно тут спросишь (в этой ветке), я прокомментирую. Но стоить это тебе будет 2т.р.
71 DEVIce
 
23.03.12
18:27
Причем по предоплате, зато сразу для УПП. :)
72 Singenor
 
23.03.12
18:29
(71) чел, ты совсем тупой?
73 DEVIce
 
23.03.12
18:30
(72). Ага, тупой я, но простейшую задачу сделать не можешь ты. Кстати, стоимость решения возрасла до 4т.р.
74 DEVIce
 
23.03.12
18:31
Причем я же не просто решение предлагаю, а с подроббными комментариями чего и почему, и зачем надо, чтобы ты потом сам мог без посторонней помощи сделать - решать тебе.
75 DEVIce
 
23.03.12
18:32
И я так понимаю тебя только предоплата не устаивает? :)
76 Singenor
 
23.03.12
18:43
(74) не знаю кому ты будешь продавать готовое решение, но я его сделаю, и не с твоей помощью так сам, через пару дней.
77 Mikeware
 
23.03.12
18:47
(76) Ну так делай. Какие проблемы?
делай, а не проси решение.
Не получается - спрашивай трудные места - только будь добр, показывай, что ты что-то сделал. Тогда помогут. Если нихрена не слелал, а хочешь помощи - получишь стеб. Жесткий. "Это мизда, деточка..."©
78 DEVIce
 
23.03.12
19:00
(77). Я ему это еще  в посте (16) предложил - но или не читает, или привык как в универе что за него ботан все делает, а тут вдруг ботаны готовы решения только за бабло дать - обнаглели совсем. :)
79 Singenor
 
25.03.12
12:16
вы че тупите, я же спрашиваю как избавиться от ошибок, не прося у вас написания кода, не?
80 Singenor
 
25.03.12
12:16
(66) ошибка
81 Мимохожий Однако
 
25.03.12
13:05
Встань отладчиком на ошибку и посмотри больной объект (переменную)
82 FIXXXL
 
25.03.12
17:41
(0) в документе Реализации кнопка Изменить над ТЧ есть?
83 MRAK
 
25.03.12
20:57
веселая ветка)