|
перенос остатков | ☑ | ||
---|---|---|---|---|
0
gr0ck
26.09.12
✎
14:30
|
использую конвертацию. выгрузка из 7.7 в 8. Там в правиле выборки используется процедура ВыгрузитьОстаткиПиСчету(), и далее в процедуре делается запрос к регистру, указывается счет, и прочее. Затем выгружается по правилу в операцию.
в 7.7 на счете 3 субконто, в 8 2 субконто. Как отсечь лишнее субконто? И где? |
|||
1
DrShad
26.09.12
✎
14:31
|
там же и отсекай
|
|||
2
Naumov
26.09.12
✎
14:33
|
в процедуре ВыгрузитьОстаткиПиСчету()
в запросе игнорируй лишнее субконто. либо добавь в 8-ке. |
|||
3
gr0ck
26.09.12
✎
14:36
|
Не, надо перед выгрузкой, или при выгрузке.
БухИт = СоздатьОбъект("БухгалтерскиеИтоги"); БухИт.ИспользоватьСубконто(); БухИт.ИспользоватьСубконто(); БухИт.ИспользоватьСубконто(); БухИт.ВыполнитьЗапрос(Параметры.ДатаВводаОстатков,, Счет); Параметры.ПараметрыАлгоритмов.Установить("БухИт", БухИт); Параметры.ПараметрыАлгоритмов.Установить("Проводки", Проводки); БухИт.ВыбратьСчета(); Пока БухИт.ПолучитьСчет() = 1 Цикл Валюты.УдалитьВсе(); Сообщить("Выборка остатков "); Если Счет.Валютный = 1 Тогда БухИт.ВыбратьВалюты(); Пока БухИт.ПолучитьВалюту() = 1 Цикл Валюты.ДобавитьЗначение(БухИт.Валюта); КонецЦикла; Иначе Валюты.ДобавитьЗначение(ПолучитьПустоеЗначение("Справочник.Валюты")); КонецЕсли; Параметры.ПараметрыАлгоритмов.Установить("ТолькоСумма", 0); Для НомерВалюты = 1 по Валюты.РазмерСписка() Цикл Если Счет.Валютный = 1 Тогда БухИт.ПолучитьВалюту(, Валюты.ПолучитьЗначение(НомерВалюты)); КонецЕсли; СуммовойУчет1 = ?(Счет.КоличествоСубконто() > 0, ?(Счет.ТолькоОбороты(1) = 1, 0, Счет.УчетПоСумме(1)), 0); СуммовойУчет2 = ?(Счет.КоличествоСубконто() > 1, ?(Счет.ТолькоОбороты(2) = 1, 0, Счет.УчетПоСумме(2)), 0); СуммовойУчет3 = ?(Счет.КоличествоСубконто() > 2, ?(Счет.ТолькоОбороты(3) = 1, 0, Счет.УчетПоСумме(3)), 0); КоличествоУровней = 0; КоличествоУровней = КоличествоУровней + ?(Счет.КоличествоСубконто() > 0, ?(Счет.ТолькоОбороты(1) = 1, 0, 1), 0); КоличествоУровней = КоличествоУровней + ?(Счет.КоличествоСубконто() > 1, ?(Счет.ТолькоОбороты(2) = 1, 0, 1), 0); КоличествоУровней = КоличествоУровней + ?(Счет.КоличествоСубконто() > 2, ?(Счет.ТолькоОбороты(3) = 1, 0, 1), 0); Параметры.ПараметрыАлгоритмов.Установить("КоличествоУровней", КоличествоУровней); Если КоличествоУровней = 0 Тогда Параметры.ПараметрыАлгоритмов.Установить("ТекНомерСубконто", 0); ПолучитьИтогиПоСчету(); ДобавитьПроводку(); ИначеЕсли КоличествоУровней > 0 Тогда БухИт.ВыбратьСубконто(1); Пока БухИт.ПолучитьСубконто(1) = 1 Цикл Если ТипЗначенияСтр(БухИт.Субконто(1)) = "Справочник" Тогда Если БухИт.Субконто(1).ЭтоГруппа() = 1 Тогда Продолжить; КонецЕсли; КонецЕсли; Если ((СуммовойУчет1 = 1) и (СуммовойУчет2 = 0)) или (КоличествоУровней = 1) Тогда Параметры.ПараметрыАлгоритмов.Установить("ТекНомерСубконто", 1); ПолучитьИтогиПоСчету(); ДобавитьПроводку(); КонецЕсли; Если КоличествоУровней > 1 Тогда БухИт.ВыбратьСубконто(2); Пока БухИт.ПолучитьСубконто(2) = 1 Цикл Если ТипЗначенияСтр(БухИт.Субконто(2)) = "Справочник" Тогда Если БухИт.Субконто(2).ЭтоГруппа() = 1 Тогда Продолжить; КонецЕсли; КонецЕсли; Если ((СуммовойУчет2 = 1) и (СуммовойУчет3 = 0)) или (КоличествоУровней = 2) Тогда Параметры.ПараметрыАлгоритмов.Установить("ТекНомерСубконто", 2); ПолучитьИтогиПоСчету(); ДобавитьПроводку(); КонецЕсли; Если КоличествоУровней > 2 Тогда БухИт.ВыбратьСубконто(3); Пока БухИт.ПолучитьСубконто(3) = 1 Цикл Если ТипЗначенияСтр(БухИт.Субконто(3)) = "Справочник" Тогда Если БухИт.Субконто(3).ЭтоГруппа() = 1 Тогда Продолжить; КонецЕсли; КонецЕсли; Параметры.ПараметрыАлгоритмов.Установить("ТекНомерСубконто", 3); ПолучитьИтогиПоСчету(); ДобавитьПроводку(); КонецЦикла; КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; |
|||
4
gr0ck
26.09.12
✎
14:39
|
Просто не знаю 7-ку, и не понимаю как там все внутри устроенно. В каком месте субконто отрубить? В плане счетов оно под 3-м номером идет. Отрубить это
Если КоличествоУровней > 2 Тогда БухИт.ВыбратьСубконто(3); Или надо все же проверку на тип субконто делать? |
|||
5
gr0ck
26.09.12
✎
14:40
|
Или тут можно проверить, и просто свернуть таблицу Проводки?
ВходящиеДанные = СоздатьОбъект("СписокЗначений"); ВходящиеДанные.Установить(РегистрБух, Проводки); ВходящиеДанные.Установить("Счет", Счет); ВходящиеДанные.Установить("Дата", БухИт.НачДата-1); ВыгрузитьПоПравилу(,, ВходящиеДанные,, "ОперацияБух"); |
|||
6
Naumov
26.09.12
✎
15:29
|
(4) Да, в этом месте где-то, но надо проверять на счет, т.к. обработка для выгрузки итогов по разным счетам идет.
А можно взять копию базы 77 и там выкинуть нафиг лишнее субконто, потом выгружать |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |