![]() |
|
создать документ операция | ☑ | ||
---|---|---|---|---|
0
iQwerty
04.07.13
✎
09:40
|
Уважаемые помогите мне пожалуйста, мучаюсь второй день, заранее вселенское спасибо!!!!
Конфа КА нужно для каждого документа "Поступление товаров и услуг" и для "ГТД по импорту" создать документ "Операция" с конкретными проводками.В общем написал код для документа "Поступление товаров и услуг"-создает документ операция и создаются все движения правильно, дальше код. Делаю тоже самое для документа "ГТД по импорту" меняю в консоле запросов документы, пока все работает, меняю счетДт 003.1 на другой неважно какой и все рушится, но фактически нужно(Дт 19.05 Кт76.05) Запрос2 = Новый Запрос; Запрос2.УстановитьПараметр("ДатаНачалаПериода", началодня(ДатаНачалаПериода)); Запрос2.УстановитьПараметр("ДатаКонецПериода", Конецдня(ДатаКонецПериода)); Запрос2.УстановитьПараметр("Гарантия",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Гарантия")); Запрос2.УстановитьПараметр("Бесплатная",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Бесплатная")); Запрос2.УстановитьПараметр("Доукомплектация",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Доукомплектация")); Запрос2.УстановитьПараметр("Гарантийная", Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Гарантийная")); Запрос2.УстановитьПараметр("Бесплатная1", Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Бесплатная")); Запрос2.УстановитьПараметр("Доукомплектация1", Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Доукомплектация")); Запрос2.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | ГТДИмпорт.Дата, | ГТДИмпорт.Организация, | ГТДИмпорт.Ответственный, | ГТДИмпорт.Контрагент.Код, | ГТДИмпорт.Номер, | ГТДИмпорт.Контрагент, | ГТДИмпортТовары.Номенклатура, | ГТДИмпортТовары.Количество |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ГТДИмпорт.Товары КАК ГТДИмпортТовары | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ГТДИмпорт КАК ГТДИмпорт | ПО ГТДИмпортТовары.Ссылка = ГТДИмпорт.Ссылка | ПО ЗначенияСвойствОбъектов.Объект = ГТДИмпортТовары.ХарактеристикаНоменклатуры |ГДЕ | ЗначенияСвойствОбъектов.Свойство В (&Гарантия, &Бесплатная, &Доукомплектация) | И ГТДИмпортТовары.Ссылка.Дата МЕЖДУ &ДатаНачалаПериода И &ДатаКонецПериода | И ЗначенияСвойствОбъектов.Значение В (&Гарантийная, &Бесплатная1, &Доукомплектация1)"; ТЗ=Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("ссылка"); ТЗ.Колонки.Добавить("номенклатура"); ТЗ.Колонки.Добавить("Характеристика"); ТЗ.Колонки.Добавить("Дата"); ТЗ.Колонки.Добавить("Организация"); ТЗ.Колонки.Добавить("Сумма"); ТЗ.Колонки.Добавить("Ответственный"); ТЗ.Колонки.Добавить("Номер"); //ТЗ.Колонки.Добавить("Содержание"); // ТЗ.Колонки.Добавить("Комментарий"); Результат2=Запрос2.Выполнить(); ТЗ2 = Результат2.Выгрузить(); ЭлементыФормы.ТабличноеПоле3.Значение = ТЗ2; ЭлементыФормы.ТабличноеПоле3.СоздатьКолонки(); ЭлементыФормы.ТабличноеПоле3.ОбновитьСтроки(); //////////////// Запрос21 = Новый Запрос; Запрос21.УстановитьПараметр("ДатаНачалаПериода", началодня(ДатаНачалаПериода)); Запрос21.УстановитьПараметр("ДатаКонецПериода", Конецдня(ДатаКонецПериода)); Запрос21.УстановитьПараметр("Гарантия",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Гарантия")); Запрос21.УстановитьПараметр("Бесплатная",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Бесплатная")); Запрос21.УстановитьПараметр("Доукомплектация",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Доукомплектация")); Запрос21.УстановитьПараметр("Гарантийная", Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Гарантийная")); Запрос21.УстановитьПараметр("Бесплатная1", Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Бесплатная")); Запрос21.УстановитьПараметр("Доукомплектация1", Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Доукомплектация")); Запрос21.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | ГТДИмпорт.Дата, | ГТДИмпорт.Организация, | ГТДИмпорт.Ответственный, | ГТДИмпорт.Контрагент.Код, | ГТДИмпорт.Номер, | ГТДИмпорт.Контрагент |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ГТДИмпорт.Товары КАК ГТДИмпортТовары | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ГТДИмпорт КАК ГТДИмпорт | ПО ГТДИмпортТовары.Ссылка = ГТДИмпорт.Ссылка | ПО ЗначенияСвойствОбъектов.Объект = ГТДИмпортТовары.ХарактеристикаНоменклатуры |ГДЕ | ЗначенияСвойствОбъектов.Свойство В (&Гарантия, &Бесплатная, &Доукомплектация) | И ГТДИмпортТовары.Ссылка.Дата МЕЖДУ &ДатаНачалаПериода И &ДатаКонецПериода | И ЗначенияСвойствОбъектов.Значение В (&Гарантийная, &Бесплатная1, &Доукомплектация1)"; ТЗ=Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("ссылка"); ТЗ.Колонки.Добавить("номенклатура"); ТЗ.Колонки.Добавить("Характеристика"); ТЗ.Колонки.Добавить("Дата"); ТЗ.Колонки.Добавить("Организация"); ТЗ.Колонки.Добавить("Сумма"); ТЗ.Колонки.Добавить("Ответственный"); ТЗ.Колонки.Добавить("Номер"); //ТЗ.Колонки.Добавить("Содержание"); // ТЗ.Колонки.Добавить("Комментарий"); Результат21=Запрос21.Выполнить(); ТЗ21 = Результат21.Выгрузить(); ЭлементыФормы.ТабличноеПоле31.Значение = ТЗ21; ЭлементыФормы.ТабличноеПоле31.СоздатьКолонки(); ЭлементыФормы.ТабличноеПоле31.ОбновитьСтроки(); //////////////////// для каждого строка из ТабличноеПоле31 цикл ДокОпер = Документы.ОперацияБух.СоздатьДокумент(); ДокОпер.Дата = Строка.Дата; ДокОпер.Организация = Строка.Организация; //докопер.Номер=Строка.Номер; //ДокОпер.Движения.Хозрасчетный.Загрузить(Результат1.Выгрузить()); ДокОпер.Записать(); ДокОперацияСсылка = ДокОпер.Ссылка; РегХозрасчетный = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); РегХозрасчетный.Отбор.Регистратор.Значение = ДокОперацияСсылка; нумер=строка.номер; для каждого строка из ТабличноеПоле3 цикл если нумер=строка.номер тогда //ДокОпер = Документы.ОперацияБух.СоздатьДокумент(); //ДокОпер.Дата = Строка.Дата; //ДокОпер.Организация = Строка.Организация; ////докопер.Номер=Строка.Номер; ////ДокОпер.Движения.Хозрасчетный.Загрузить(Результат1.Выгрузить()); //ДокОпер.Записать(); //ДокОперацияСсылка = ДокОпер.Ссылка; //РегХозрасчетный = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); //РегХозрасчетный.Отбор.Регистратор.Значение = ДокОперацияСсылка; //////////////// //склад=строка.склад; количество=строка.количество; //сумма=строка.сумма; Номенклатура=строка.номенклатура; Контрагент = Справочники.Контрагенты.НайтиПоКоду(строка.контрагенткод); //КодОС = СокрП(ДБФ.OS); //ОсновноеСредство = Справочники.ОсновныеСредства.НайтиПоКоду(КодОС); РегЗапись = РегХозрасчетный.Добавить(); РегЗапись.Период = Строка.Дата; РегЗапись.Регистратор = ДокОперацияСсылка; РегЗапись.Организация = Строка.Организация; // РегЗапись.СубконтоДт = ""; РегЗапись.Содержание = "Корректировка стоимости ОС с 0 стоимостью(Максим)"; РегЗапись.СчетДт = ПланыСчетов.Хозрасчетный.МатериалыПринятыеВПереработку; РегЗапись.СчетКт = ПланыСчетов.Хозрасчетный.МатериалыПринятыеВПереработку; //УстановитьСубконто(Счет, Субконто, ИмяСубконто, ЗначениеСубконто, Сообщать = Ложь, Заголовок = "", ВидыСубконтоСчета = Неопределено) Экспорт БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетДт, РегЗапись.СубконтоДт,"Контрагенты", Контрагент); БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетДт, РегЗапись.СубконтоДт,"Номенклатура", Номенклатура); // БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетДт, РегЗапись.СубконтоДт,"Склады", Склад); // БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетДт, РегЗапись.СубконтоДт,"Количество", Количество); // БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетДт, РегЗапись.СубконтоДт,"Сумма", Сумма); // БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетДт, РегЗапись.СубконтоДт,"Номенклатура", Номенклатура); БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетКт, РегЗапись.СубконтоКт,"Контрагенты", Контрагент); БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетКт, РегЗапись.СубконтоКт, "Номенклатура", Номенклатура); // БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетКт, РегЗапись.СубконтоКт,"Склады", Склад); //Субконто1 = Строка.контрагент; //БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетКт, РегЗапись.СубконтоКт, , ); //(РегЗапись.СчетДт, РегЗапись.СубконтоДт, РегЗапись.СчетКт, РегЗапись.СубконтоКт, "ОсновныеСредства", ОсновноеСредство); //РегЗапись.Сумма = Строка.Сумма; // хгалтерскийУчет.УстановитьСубконто(НоваяЗапись.СчетДт,НоваяЗапись.СубконтоДт,"НоменклатурныеГруппы",Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000002")); //БухгалтерскийУчет.УстановитьСубконто(НоваяЗапись.СчетКт,НоваяЗапись.СубконтоКт,"Товары",Справочники.Номенклатура.НайтиПоНаименованию("ГТДИмпортТовары.Номенклатура")); //НоваяЗапись.Период = СслыкаНаОбъект.Дата; //НоваяЗапись.Активность = 1; // РегХозрасчетный.Записать(); конецесли; конеццикла; РегХозрасчетный.Записать(); //////////////////////// конеццикла; КонецПроцедуры |
|||
1
mikecool
04.07.13
✎
09:41
|
это что за бред? или наоборот - что то из вселенской мудрости?
|
|||
2
iQwerty
04.07.13
✎
09:41
|
(1) скорее бред. что не понятно?
|
|||
3
Beduin
04.07.13
✎
09:43
|
(2) Надо код всей базы выложить. Так тяжело понять, мало информации
|
|||
4
mikecool
04.07.13
✎
09:44
|
(2) "нужно для каждого документа "Поступление товаров и услуг" и для "ГТД по импорту" создать документ "Операция" с конкретными проводками" - а что мешает использовать операции самих документов?
|
|||
5
Beduin
04.07.13
✎
09:44
|
Запрос2.УстановитьПараметр("Гарантия",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Гарантия"));
Запрос2.УстановитьПараметр("Бесплатная",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Бесплатная")); Запрос2.УстановитьПараметр("Доукомплектация",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Доукомплектация")); Запрос2.УстановитьПараметр("Гарантийная", Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Гарантийная")); Запрос2.УстановитьПараметр("Бесплатная1", Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Бесплатная")); Запрос2.УстановитьПараметр("Доукомплектация1", Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Доукомплектация")); А вот за это нужно расстреливать |
|||
6
mikecool
04.07.13
✎
09:44
|
+4 и ваще - ты чего такой дерзкий?
|
|||
7
iQwerty
04.07.13
✎
09:50
|
я в тупике
|
|||
8
Beduin
04.07.13
✎
09:52
|
(7) Ты хотя бы напиши ошибку. Мы же не отладчик
|
|||
9
iQwerty
04.07.13
✎
09:58
|
(8) он не создает движения, причем если убрать "для каждого строка из ТабличноеПоле3 цикл", и вместо "для каждого строка из ТабличноеПоле31 цикл" вставить "для каждого строка из ТабличноеПоле3 цикл" он создаст движения, но мне нужно создать движение для документа, а так выйдет...ну вы сами понимаете что выйдет
|
|||
10
Beduin
04.07.13
✎
09:59
|
(9) Отсыпь
|
|||
11
hhhh
04.07.13
✎
10:02
|
(9) а здесь все символы внимательно просмотрели??
РегЗапись.СчетДт = ПланыСчетов.Хозрасчетный.МатериалыПринятыеВПереработку; РегЗапись.СчетКт = ПланыСчетов.Хозрасчетный.МатериалыПринятыеВПереработку; что-то какой-то странный набор буков. |
|||
12
hhhh
04.07.13
✎
10:03
|
(1) этот код - наша гордость. ОН полностью написан и отлажен форумом миста.
|
|||
13
iQwerty
04.07.13
✎
10:05
|
(11) да, при чем при таких данных все работает если
РегЗапись.СчетДт = ПланыСчетов.Хозрасчетный.МатериалыПринятыеВПереработку;(Сч003.1) РегЗапись.СчетКт = ПланыСчетов.Хозрасчетный.МатериалыПринятыеВПереработку;(Сч003.1) заменить на РегЗапись.СчетДт = ПланыСчетов.Хозрасчетный.НДСуплачиваемыйТаможеннымОрганам;(Сч19.05) РегЗапись.СчетКт = ПланыСчетов.Хозрасчетный.РасчетыСПрочимиПоставщикамиИПодрядчиками;(Сч76.05) то вот как раз здесь сломается |
|||
14
iQwerty
04.07.13
✎
10:13
|
немножко поменял код, создает документ не создает движения
n=0; для каждого строка из ТабличноеПоле31 цикл ДокОперация = Документы.ОперацияБух.СоздатьДокумент(); ДокОперация.Дата = Строка.Дата; ДокОперация.Организация = Строка.Организация; ДокОперация.Ответственный = Строка.Ответственный; //ДокОперация.Содержание = Содержание; ДокОперация.Комментарий = "Созданы движения"+n; ДокОперация.Записать(); ДокОперацияСсылка = ДокОперация.Ссылка; РегХозрасчетный = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); РегХозрасчетный.Отбор.Регистратор.Значение = ДокОперацияСсылка; для каждого строка из ТабличноеПоле31 цикл контрагент=строка.контрагент; РегЗапись = РегХозрасчетный.Добавить(); РегЗапись.Период = Строка.Дата; РегЗапись.Регистратор = ДокОперацияСсылка; РегЗапись.Организация = Строка.Организация; РегЗапись.Содержание = "Корректировка стоимости ОС с 0 стоимостью"; РегЗапись.СчетДт = ПланыСчетов.Хозрасчетный.НДСуплачиваемыйТаможеннымОрганам; РегЗапись.СчетКт = ПланыСчетов.Хозрасчетный.РасчетыСПрочимиПоставщикамиИПодрядчиками; БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетДт, РегЗапись.СубконтоДт, "Контрагенты", Контрагент); БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетКт, РегЗапись.СубконтоКт, "Контрагенты", Контрагент); КонецЦикла; РегХозрасчетный.Записать(); n=n+1; конеццикла; |
|||
15
iQwerty
04.07.13
✎
10:15
|
опечатка
n=0; для каждого строка из ТабличноеПоле31 цикл ДокОперация = Документы.ОперацияБух.СоздатьДокумент(); ДокОперация.Дата = Строка.Дата; ДокОперация.Организация = Строка.Организация; ДокОперация.Ответственный = Строка.Ответственный; ДокОперация.Содержание = "Созданы движения"+n; ДокОперация.Комментарий = "Созданы движения"+n; ДокОперация.Записать(); ДокОперацияСсылка = ДокОперация.Ссылка; РегХозрасчетный = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); РегХозрасчетный.Отбор.Регистратор.Значение = ДокОперацияСсылка; для каждого строка из ТабличноеПоле3 цикл контрагент=строка.контрагент; РегЗапись = РегХозрасчетный.Добавить(); РегЗапись.Период = Строка.Дата; РегЗапись.Регистратор = ДокОперацияСсылка; РегЗапись.Организация = Строка.Организация; РегЗапись.Содержание = "Корректировка стоимости ОС с 0 стоимостью"; РегЗапись.СчетДт = ПланыСчетов.Хозрасчетный.НДСуплачиваемыйТаможеннымОрганам; РегЗапись.СчетКт = ПланыСчетов.Хозрасчетный.РасчетыСПрочимиПоставщикамиИПодрядчиками; БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетДт, РегЗапись.СубконтоДт, "Контрагенты", Контрагент); БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетКт, РегЗапись.СубконтоКт, "Контрагенты", Контрагент); КонецЦикла; РегХозрасчетный.Записать(); n=n+1; конеццикла; |
|||
16
hhhh
04.07.13
✎
10:17
|
а сумма где? Что, проводки без сумм фигачишь?
|
|||
17
Deon
04.07.13
✎
10:20
|
Кстати, а если РегХозрасчетный получать строкой:
РегХозрасчетный = ДокОперация.Движения.Хозрасчетный; Это будет то же самое, что и в коде (15)? |
|||
18
iQwerty
04.07.13
✎
10:22
|
(17) непонял
|
|||
19
Deon
04.07.13
✎
10:22
|
(16) Теоретически, это не должно мешать проводкам записываться
|
|||
20
Deon
04.07.13
✎
10:25
|
(15) В отладчике смотрел? Цикл заполнения проводок ваще выполняется?
|
|||
21
iQwerty
04.07.13
✎
10:31
|
(20) да выполняется, то есть как раз сколько строк, столько раз он и останавливается
|
|||
22
Deon
04.07.13
✎
10:35
|
(21) Набор записей РегХозрасчетный в отладчике заполнен?
|
|||
23
iQwerty
04.07.13
✎
10:56
|
нет
|
|||
24
iQwerty
04.07.13
✎
11:15
|
помогите
|
|||
25
Beduin
04.07.13
✎
11:27
|
(24) У тебя сумма с количеством где устанавливается?
|
|||
26
aka AMIGO
04.07.13
✎
11:41
|
я как-то не увидел особых сложностей.. посмотрел, как делается типовая запись в документе, уяснил, применил - работает..
ДокОперация = Документы.ОперацияБух.СоздатьДокумент(); ДокОперация.Дата = ДатаДокумента; ДокОперация.Организация = ВыбОрганизация; ДокОперация.Ответственный = ИмяПользователя(); //Ответственный; ДокОперация.Содержание = "Показания счетчиков эл.энергии ("+ФайлИмя+")"; ДокОперация.Комментарий = "Создан обработкой из "+ФайлИмя; ДокОперация.СпособЗаполнения = "Вручную"; ДокОперация.Записать(); ДокОперацияСсылка = ДокОперация.Ссылка; .... //готовим регистры для записи РегХозрасчетный = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); РегХозрасчетный.Отбор.Регистратор.Значение = ДокОперацияСсылка; РегХозрасчетный.Очистить(); //мне так нужно РегХозрасчетный.Записать(Истина); ..... РегЗапись = РегХозрасчетный.Добавить(); //ЭЛ РегЗапись.Период = ДатаДокумента; РегЗапись.Регистратор = ДокОперацияСсылка; РегЗапись.Организация = ВыбОрганизация; РегЗапись.СчетДт = СчетЭЛ; БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетДт, РегЗапись.СубконтоДт, "Контрагенты", Стр.Контр); БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетДт, РегЗапись.СубконтоДт, "Номенклатура", СПН.НайтиПоНаименованию("эл.энергия день")); РегЗапись.КоличествоДт = Коплате; РегЗапись.Сумма = Сум; ЕстьЧтоЗаписать=1 .... Если ЕстьЧтоЗаписать=1 Тогда РегХозрасчетный.Записать(Истина); ДокОперация.СуммаОперации = СуммаДокумента; ДокОперация.Записать(); КонецЕсли; |
|||
27
aka AMIGO
04.07.13
✎
11:43
|
понимаю, что местами проглядывает г-код, но это меня уже мало волнует :)
бушка уже давно, и во-всю, генерит документы :) |
|||
28
aka AMIGO
04.07.13
✎
11:54
|
Да, перед:
ЕстьЧтоЗаписать=1; РегЗапись.СчетКт = Счет9101; БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетКт, РегЗапись.СубконтоКт, "ПрочиеДоходыИРасходы", Субк9101); но это уже детали.. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |