|
Конвертация данных. Перенос проводок (движений документов) | ☑ | ||
---|---|---|---|---|
0
razbiralshik
06.12.17
✎
12:47
|
Переношу проводки с документа1 (Самописный) базы источника в документ2 (ОперацияУпр) базы приемника.
Проводки переносятся 1 к 1. На каждую строку табличной части документа1, формируется 3 проводки. Создано ПВД. ПКО. ПКС. Для проводок источник Хозрастченый приемник Управленческий. Вот по новому требованию, нужно чтобы записывалось не 3 проводки на кажду строку, а 2. Причем вторую строку нужно немного модифицировать, что у меня поулчилось легко, а вот как при переносе удалить ненужню строку для каждой тройки проводок я не знаю. В ПКО - ПослеЗагрузки писал: Проводки = РегистрыБухгалтерии.Управленческий.СоздатьНаборЗаписей(); Проводки.Отбор.Регистратор.Установить(Объект.Ссылка); Проводки.Прочитать(); Для Каждого Стр Из Проводки Цикл Если Стр.СчетДт = ПланыСчетов.Управленческий.ПрочиеРасчетыСРазнымиДебиторамиИКредиторами Тогда Проводки.Удалить(Стр); Сообщить(Объект); Сообщить(Объект.Ссылка); Сообщить(ПланыСчетов.Управленческий.ПрочиеРасчетыСРазнымиДебиторамиИКредиторами); Сообщить(Стр.СчетДт); КонецЕсли; КонецЦикла; Проводки.Записать(); Но не срабатывает почемуто, хотя отладчиком прошелся, лишняя проводка убирается, но в 1С все равно три проводки остается. |
|||
1
Skylark
06.12.17
✎
12:53
|
(0) Попробуй радикальный метод - в цикле проверки проводок нужные проводки пиши в таблицу, потом весь набор очищай, записывай и потом добавляй из таблицы новые.
|
|||
2
Ёпрст
06.12.17
✎
12:57
|
(0) проще надо делать - на этапе выгрузки удалять лишнюю проводку.
|
|||
3
razbiralshik
06.12.17
✎
13:00
|
(1) это конечна гиморно.
(2) ну а какая разница где ты ее удалишь здесь или там? |
|||
4
Ёпрст
06.12.17
✎
13:01
|
(3) большая.
1. скорость 2. меньше файл передачи 3. ПослеЗагрузки может не срабатывать вообще (зависит от флагов) |
|||
5
razbiralshik
06.12.17
✎
13:06
|
(4) зато туча нового кода
|
|||
6
Ц_У
06.12.17
✎
13:08
|
(0) "каждый из" знает что его удалили?
|
|||
7
Ёпрст
06.12.17
✎
13:09
|
(5) какого туча кода ?
|
|||
8
razbiralshik
06.12.17
✎
13:18
|
(7) ну я хз тогда как ты собрался обходить при выгрузке все движения документа и удалять оттуда лишние проводки...
|
|||
9
Ёпрст
06.12.17
✎
13:21
|
(8) вообще не собираюсь ничего удалять и обходить
просто поставить условие в свойстве ПКГС |
|||
10
Ёпрст
06.12.17
✎
13:22
|
и отказ = истина
|
|||
11
Ёпрст
06.12.17
✎
13:26
|
точнее, в ПКГС в Перед Выгрузкой написать
Если ОбъектКоллекции.СчетДт = ПланыСчетов.Управленческий.ПрочиеРасчетыСРазнымиДебиторамиИКредиторами Тогда Отказ = Истина; КонецЕсли; и усё. |
|||
12
razbiralshik
06.12.17
✎
13:34
|
(11) все гениальное просто... ща затестим
|
|||
13
razbiralshik
06.12.17
✎
13:41
|
чето не прокатило...
Ошибка в обработчике события ПередВыгрузкой (объекта коллекции) Ошибка при выгрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML(7981)}: Ошибка в обработчике события ПередВыгрузкой (объекта коллекции) |
|||
14
Marik1274
06.12.17
✎
14:03
|
Формируй необходимые проводки (любые) в ПКГС (Группа) Хозрасчетный и пиши их в КоллекцияОбъектов.
Пример работающего кода: Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | НоменклатураДополнительныеРеквизиты.Ссылка КАК Ссылка, | НоменклатураДополнительныеРеквизиты.Значение КАК Значение |ПОМЕСТИТЬ ВидНоменклатуры |ИЗ | Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты |ГДЕ | НоменклатураДополнительныеРеквизиты.Свойство = &Свойство |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | СтруктураПредприятияДополнительныеРеквизиты.Ссылка, | СтруктураПредприятияДополнительныеРеквизиты.Значение, | СтруктураПредприятияДополнительныеРеквизиты.Значение.Наименование КАК Наименование |ПОМЕСТИТЬ ДопРеквПроект |ИЗ | Справочник.СтруктураПредприятия.ДополнительныеРеквизиты КАК СтруктураПредприятияДополнительныеРеквизиты |ГДЕ | СтруктураПредприятияДополнительныеРеквизиты.Свойство = &СвойствоПроект |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОсновноеПроизводство) | ТОГДА ""Подразделения"" | КОГДА ХозрасчетныйДвиженияССубконто.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ВыручкаНеЕНВД) | ТОГДА ""Номенклатурные группы"" | КОГДА ХозрасчетныйДвиженияССубконто.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СебестоимостьПродажНеЕНВД) | ТОГДА ""Номенклатурные группы"" | КОГДА ХозрасчетныйДвиженияССубконто.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Продажи_НДС) | ТОГДА ""Номенклатурные группы"" | ИНАЧЕ ХозрасчетныйДвиженияССубконто.ВидСубконтоДт1.Наименование | КОНЕЦ КАК ВидСубконтоДт1, | ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОсновноеПроизводство) | ТОГДА ХозрасчетныйДвиженияССубконто.ПодразделениеДт | КОГДА ХозрасчетныйДвиженияССубконто.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ВыручкаНеЕНВД) | ТОГДА ХозрасчетныйДвиженияССубконто.НаправлениеДеятельностиДт | КОГДА ХозрасчетныйДвиженияССубконто.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СебестоимостьПродажНеЕНВД) | ТОГДА ХозрасчетныйДвиженияССубконто.НаправлениеДеятельностиДт | КОГДА ХозрасчетныйДвиженияССубконто.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Продажи_НДС) | ТОГДА ХозрасчетныйДвиженияССубконто.НаправлениеДеятельностиДт | КОГДА ХозрасчетныйДвиженияССубконто.ВидСубконтоДт1.Наименование = ""Номенклатура"" | ТОГДА ВЫБОР | КОГДА ВидНоменклатуры.Значение = ""Товар"" | ТОГДА ЗНАЧЕНИЕ(Справочник.Номенклатура.Товар) | КОГДА ВидНоменклатуры.Значение = ""Услуга"" | ТОГДА ЗНАЧЕНИЕ(Справочник.Номенклатура.Услуга) | КОГДА ВидНоменклатуры.Значение = ""Автомобили"" | ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоДт1 | ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Номенклатура.Товар) | КОНЕЦ | ИНАЧЕ ХозрасчетныйДвиженияССубконто.СубконтоДт1 | КОНЕЦ КАК СубконтоДт1, | ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОсновноеПроизводство) | ТОГДА ""Номенклатурные группы"" | КОГДА ХозрасчетныйДвиженияССубконто.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ИздержкиОбращения) | ТОГДА ""Подразделения"" | ИНАЧЕ ХозрасчетныйДвиженияССубконто.ВидСубконтоДт2.Наименование | КОНЕЦ КАК ВидСубконтоДт2, | ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОсновноеПроизводство) | ТОГДА ХозрасчетныйДвиженияССубконто.НаправлениеДеятельностиДт | КОГДА ХозрасчетныйДвиженияССубконто.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ИздержкиОбращения) | ТОГДА ХозрасчетныйДвиженияССубконто.ПодразделениеДт | ИНАЧЕ ХозрасчетныйДвиженияССубконто.СубконтоДт2 | КОНЕЦ КАК СубконтоДт2, | ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ВыручкаНеЕНВД) | ТОГДА """" | КОГДА ХозрасчетныйДвиженияССубконто.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СебестоимостьПродажНеЕНВД) | ТОГДА """" | КОГДА ХозрасчетныйДвиженияССубконто.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ИздержкиОбращения) | ТОГДА ""Номенклатурные группы"" | ИНАЧЕ ХозрасчетныйДвиженияССубконто.ВидСубконтоДт3.Наименование | КОНЕЦ КАК ВидСубконтоДт3, | ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ВыручкаНеЕНВД) | ТОГДА """" | КОГДА ХозрасчетныйДвиженияССубконто.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СебестоимостьПродажНеЕНВД) | ТОГДА """" | КОГДА ХозрасчетныйДвиженияССубконто.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ИздержкиОбращения) | ТОГДА ВЫБОР | КОГДА ДопРеквПроект.Наименование = ""Магазин"" | ТОГДА ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПродажаЗапчастей) | ИНАЧЕ ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПродажаАвтомобилей) | КОНЕЦ | ИНАЧЕ ХозрасчетныйДвиженияССубконто.СубконтоДт3 | КОНЕЦ КАК СубконтоДт3, | ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОсновноеПроизводство) | ТОГДА ""Подразделения"" | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ВыручкаНеЕНВД) | ТОГДА ""Номенклатурные группы"" | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СебестоимостьПродажНеЕНВД) | ТОГДА ""Номенклатурные группы"" | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Продажи_НДС) | ТОГДА ""Номенклатурные группы"" | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСПодотчетнымиЛицами) | ТОГДА ""Работники организации"" | ИНАЧЕ ХозрасчетныйДвиженияССубконто.ВидСубконтоКт1.Наименование | КОНЕЦ КАК ВидСубконтоКт1, | ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОсновноеПроизводство) | ТОГДА ХозрасчетныйДвиженияССубконто.ПодразделениеКт | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ВыручкаНеЕНВД) | ТОГДА ХозрасчетныйДвиженияССубконто.НаправлениеДеятельностиКт | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СебестоимостьПродажНеЕНВД) | ТОГДА ХозрасчетныйДвиженияССубконто.НаправлениеДеятельностиКт | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Продажи_НДС) | ТОГДА ХозрасчетныйДвиженияССубконто.НаправлениеДеятельностиКт | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСПодотчетнымиЛицами) | ТОГДА &ФизЛицо | КОГДА ХозрасчетныйДвиженияССубконто.ВидСубконтоКт1.Наименование = ""Номенклатура"" | ТОГДА ВЫБОР | КОГДА ВидНоменклатуры.Значение = ""Товар"" | ТОГДА ЗНАЧЕНИЕ(Справочник.Номенклатура.Товар) | КОГДА ВидНоменклатуры.Значение = ""Услуга"" | ТОГДА ЗНАЧЕНИЕ(Справочник.Номенклатура.Услуга) | КОГДА ВидНоменклатуры.Значение = ""Автомобили"" | ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт1 | ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Номенклатура.Товар) | КОНЕЦ | ИНАЧЕ ХозрасчетныйДвиженияССубконто.СубконтоКт1 | КОНЕЦ КАК СубконтоКт1, | ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОсновноеПроизводство) | ТОГДА ""Номенклатурные группы"" | ИНАЧЕ ХозрасчетныйДвиженияССубконто.ВидСубконтоКт2.Наименование | КОНЕЦ КАК ВидСубконтоКт2, | ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОсновноеПроизводство) | ТОГДА ХозрасчетныйДвиженияССубконто.НаправлениеДеятельностиКт | ИНАЧЕ ХозрасчетныйДвиженияССубконто.СубконтоКт2 | КОНЕЦ КАК СубконтоКт2, | ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ВыручкаНеЕНВД) | ТОГДА """" | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СебестоимостьПродажНеЕНВД) | ТОГДА """" | ИНАЧЕ ХозрасчетныйДвиженияССубконто.ВидСубконтоКт3.Наименование | КОНЕЦ КАК ВидСубконтоКт3, | ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ВыручкаНеЕНВД) | ТОГДА """" | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СебестоимостьПродажНеЕНВД) | ТОГДА """" | ИНАЧЕ ХозрасчетныйДвиженияССубконто.СубконтоКт3 | КОНЕЦ КАК СубконтоКт3, | ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.ВалютаДт, ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)) КАК ВалютаДт, | ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.ВалютаКт, ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)) КАК ВалютаКт, | ХозрасчетныйДвиженияССубконто.Организация КАК Организация, | """" КАК ВидРегламентнойОперации, | ХозрасчетныйДвиженияССубконто.Период КАК ДатаЗаписи, | ЛОЖЬ КАК НДСПродукции, | """" КАК НомерЖурнала, | ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.ПодразделениеДт, ЗНАЧЕНИЕ(Справочник.СтруктураПредприятия.ПустаяСсылка)) КАК Подразделение, | ХозрасчетныйДвиженияССубконто.Содержание КАК Содержание, | ЛОЖЬ КАК СписаниеПартий, | ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.ВалютнаяСуммаДт, 0) КАК ВалютнаяСуммаДт, | ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.ВалютнаяСуммаКт, 0) КАК ВалютнаяСуммаКт, | 0 КАК КоличествоДт, | 0 КАК КоличествоКт, | ХозрасчетныйДвиженияССубконто.Сумма КАК Сумма, | ХозрасчетныйДвиженияССубконто.Активность КАК Активность, | ХозрасчетныйДвиженияССубконто.Период КАК Период, | &Регистратор КАК Регистратор, | ХозрасчетныйДвиженияССубконто.СчетДт КАК СчетДт, | ХозрасчетныйДвиженияССубконто.СчетКт КАК СчетКт |ИЗ | РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто( | &Дата, | &Дата, | Регистратор = &Регистратор | И СчетДт.Забалансовый = ЛОЖЬ | И СчетКт.Забалансовый = ЛОЖЬ, | , | ) КАК ХозрасчетныйДвиженияССубконто | ЛЕВОЕ СОЕДИНЕНИЕ ВидНоменклатуры КАК ВидНоменклатуры | ПО ХозрасчетныйДвиженияССубконто.СубконтоДт1 = ВидНоменклатуры.Ссылка | ЛЕВОЕ СОЕДИНЕНИЕ ДопРеквПроект КАК ДопРеквПроект | ПО ХозрасчетныйДвиженияССубконто.ПодразделениеДт = ДопРеквПроект.Ссылка"; Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ВидНоменклатурыИзТорговли"); СвойствоПроект = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Основной проект"); Запрос.УстановитьПараметр("Регистратор", Источник); Запрос.УстановитьПараметр("Дата", Источник.Дата); Запрос.УстановитьПараметр("Свойство",Свойство); Запрос.УстановитьПараметр("СвойствоПроект",СвойствоПроект); Запрос.УстановитьПараметр("ФизЛицо",Источник.ПодотчетноеЛицо); Результат = Запрос.Выполнить().Выгрузить(); Результат.Колонки.Добавить("СубконтоДт"); Результат.Колонки.Добавить("СубконтоКт"); Для Каждого СтрокаТЧ ИЗ Результат Цикл СубконтоДт = Новый Соответствие; СубконтоДт.Вставить(Новый Структура("Наименование", СтрокаТЧ.ВидСубконтоДт1),СтрокаТЧ.СубконтоДт1); СубконтоДт.Вставить(Новый Структура("Наименование", СтрокаТЧ.ВидСубконтоДт2),СтрокаТЧ.СубконтоДт2); СубконтоДт.Вставить(Новый Структура("Наименование", СтрокаТЧ.ВидСубконтоДт3),СтрокаТЧ.СубконтоДт3); СтрокаТЧ.СубконтоДт = СубконтоДт; СубконтоКт = Новый Соответствие; СубконтоКт.Вставить(Новый Структура("Наименование", СтрокаТЧ.ВидСубконтоКт1),СтрокаТЧ.СубконтоКт1); СубконтоКт.Вставить(Новый Структура("Наименование", СтрокаТЧ.ВидСубконтоКт2),СтрокаТЧ.СубконтоКт2); СубконтоКт.Вставить(Новый Структура("Наименование", СтрокаТЧ.ВидСубконтоКт3),СтрокаТЧ.СубконтоКт3); СтрокаТЧ.СубконтоКт = СубконтоКт; КонецЦикла; КоллекцияОбъектов = Результат; |
|||
15
razbiralshik
06.12.17
✎
14:09
|
Если ОбъектКоллекции.СчетДт = ПланыСчетов.Хозрасчетный.ПрочиеРасчетыСРазнымиДебиторамиИКредиторами Тогда
Отказ = Истина; КонецЕсли; вот так прокатывает, мыж выгружаем, а там не упр а хозр )) Спасибо Ёпрст! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |