переход из 1С:Предприниматель 7.7 в 8.2

Новая тема
Показывать по 10 20 40 сообщений
Пробовал. Процесс то всё-равно 32х битный. Съедает 1,4 GB из положенных 4 GB и падает.
А свернуть базу 7.7 не получается? Через ТиИ...
Что есть ТиИ? Тестирование и исправление ИБ? Свёртки там не нашёл. Нашёл только "упаковку таблиц ИБ", что собственно и было сделано изначально.
Проблему не решил.
Грохнул все документы до начала года. Ввёл остатки вручную. Перегнал в БП 2.0 стандартной обработкой.
Ошибка находится в процедуре "ВыгрузитьОстаткиПрочихРасходов()"
в обработке по переносу "IP_ACC8.ert"
идет странное зацикливание на обработку запросу.



Решение:

1) в тексте запроса убрать/за комментировать "|Без итогов;"
2) создаете таблицу значений и обходите запрос по группировкам.
внимание если оставить "|Без итогов;", и сделать проще "запрос.выгрузить(тзВаше)"-приведет также к переполнению памяти
3) заполняем параметры из созданной таблицы

рабочий код на время переноса:


Код
Функция ВыгрузитьОстаткиПрочихРасходов(
                  ИсходящиеДанные = "", ВходящиеДанные = "", Источник = "", Приемник = "", ТипПриемника = "", Значение = "", Выражение = "",
                  Пусто = "", ВыборкаДанных = "", Объект = "", КоллекцияОбъектов = "", ОбъектКоллекции = "", ИмяПКО = "", ИмяПКОВидСубконто = "",
                  НомерПКО = "", НомерПКС = "", Правило = "", КлючВыгружаемыхДанных = "", НеЗапоминатьВыгруженные = "", НеЗамещатьОбъектПриЗагрузке = "",
                  ВсеОбъектыВыгружены = "", ТолькоПолучитьУзелСсылки = "", РежимЗаписи = "", РежимПроведения = "", СтандартнаяОбработка = "",
                  НеЗамещать = "", НеОчищать = "", УзелСсылки = "", УзелКоллекцииОбъектов = "", УзелОбъектаКоллекции = "", УзелСвойства = "",
                  ВидСубконто = "", Субконто = "", Отказ = "")


      Параметры.ТаблицаОстатковМПЗ.УдалитьСтроки();
      
      ВыбНачПериода = Параметры.ДатаКонцаПериодаВыгрузки;
      ВыбКонПериода = Параметры.ДатаКонцаПериодаВыгрузки;      
      
      Если Параметры.ДатаВводаОстатков = Параметры.ДатаКонцаПериодаВыгрузки Тогда
            ВидОстатка = "НачОст";
      Иначе
            ВидОстатка = "КонОст";
      КонецЕсли;
      
      Запрос = СоздатьОбъект("Запрос");
      ТекстЗапроса = 
      "//{{ЗАПРОС(Сформировать)
      |Период с ВыбНачПериода по ВыбКонПериода;
      //|Без итогов;
      |ВидДеятельности = Регистр.РасчетыСПоставщиками.ВидДеятельности;
      |ОблагаетсяНДС = Регистр.РасчетыСПоставщиками.ОблагаетсяНДС;
      |Договор = Регистр.РасчетыСПоставщиками.Договор;
      |Номенклатура = Регистр.РасчетыСПоставщиками.Номенклатура;
      |Партия = Регистр.РасчетыСПоставщиками.РасчДокумент;
      |Количество = Регистр.РасчетыСПоставщиками.Количество;
      |Сумма = Регистр.РасчетыСПоставщиками.Сумма;
      |СуммаНДС = Регистр.РасчетыСПоставщиками.СуммаНДС;
      |Функция КоличествоНачОст = " + ВидОстатка + "(Количество);
      |Функция СуммаНачОст = " + ВидОстатка + "(Сумма);
      |Функция СуммаНДСНачОст = " + ВидОстатка + "(СуммаНДС);
      |Группировка ВидДеятельности;
      |Группировка Договор;
      |Группировка Номенклатура без групп;
      |Группировка Партия;
      |Условие(Партия.Вид() = ""ПрочиеРасходыРасчеты"");
      |"//}}ЗАПРОС
      ;
      // Если ошибка в запросе, то выход из процедуры
      Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
            Возврат 0;
      КонецЕсли;  
      
      //не формирует почемуто какая то трабла с таблицой данных
      тз = Создатьобъект("ТаблицаЗначений");
      тз.НоваяКолонка("ВидДеятельности","Справочник.ВидыДеятельности");
      тз.НоваяКолонка("Договор","Справочник.Договоры");
      тз.НоваяКолонка("Номенклатура","Справочник.Номенклатура");
      тз.НоваяКолонка("Партия","Документ");
      тз.НоваяКолонка("КоличествоНачОст","Число",15,3);
      тз.НоваяКолонка("СуммаНачОст","Число",15,3);
      тз.НоваяКолонка("СуммаНДСНачОст","Число",15,3);
      тз.НоваяКолонка("ОблагаетсяНДС");
      
      
      Пока Запрос.Группировка(1) = 1 Цикл//ВидДеятельности
            Пока Запрос.Группировка(2) = 1 Цикл//Договор
                  Пока Запрос.Группировка(3) = 1 Цикл//Номенклатура
                        Пока Запрос.Группировка(4) = 1 Цикл//Партия
                            тз.НоваяСтрока();
                              тз.ВидДеятельности = Запрос.ВидДеятельности;
                              тз.Договор = Запрос.Договор;
                              тз.Номенклатура = Запрос.Номенклатура;
                              тз.Партия = Запрос.Партия; 
                              тз.ОблагаетсяНДС = Запрос.ОблагаетсяНДС; 
                              тз.КоличествоНачОст = Запрос.КоличествоНачОст; 
                              тз.СуммаНачОст = Запрос.СуммаНачОст; 
                              тз.СуммаНДСНачОст = Запрос.СуммаНДСНачОст; 
                        КонецЦикла;
                  КонецЦикла;
            КонецЦикла;      
      КонецЦикла;      
                     
      Запрос= "";
      Запрос = Создатьобъект("ТаблицаЗначений");
      тз.выгрузить(Запрос);  
      Запрос.ВыбратьСтроки();
      НомерСтроки = 1;
      Пока Запрос.ПолучитьСтроку() = 1 Цикл
            
            НоменклатурнаяГруппа = ?(ПустоеЗначение(Запрос.ВидДеятельности) = 1, Параметры.ОсновнаяНоменклатурнаяГруппа, СокрЛП(Запрос.ВидДеятельности.Наименование));
            
            Параметры.ТаблицаОстатковМПЗ.НоваяСтрока();
            Параметры.ТаблицаОстатковМПЗ.Ключ                                    = НомерСтроки;
            Параметры.ТаблицаОстатковМПЗ.НомерСтрокиТЧ                        = НомерСтроки;
            Параметры.ТаблицаОстатковМПЗ.Номенклатура                         = Запрос.Номенклатура; 
            Параметры.ТаблицаОстатковМПЗ.Партия                                    = Запрос.Договор;
            Параметры.ТаблицаОстатковМПЗ.Количество                         = Запрос.КоличествоНачОст; 
            Параметры.ТаблицаОстатковМПЗ.Сумма                                    = Запрос.СуммаНачОст;
            Параметры.ТаблицаОстатковМПЗ.НДС                                    = Запрос.СуммаНДСНачОст;
            Параметры.ТаблицаОстатковМПЗ.НоменклатурнаяГруппа       = НоменклатурнаяГруппа;
            
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Если Запрос.СуммаНДСНачОст <> 0 Тогда
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Параметры.ТаблицаОстатковМПЗ.НДСВключенВСтоимость&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=?(Запрос.ОблагаетсяНДС = 0, 1, 0);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Иначе
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Параметры.ТаблицаОстатковМПЗ.НДСВключенВСтоимость&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 0;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;КонецЕсли;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Параметры.ПараметрыАлгоритмов.Установить("ВидДеятельсности", Запрос.ВидДеятельности);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Параметры.ТаблицаОстатковМПЗ.ХарактерДеятельности = ОпределитьХарактерДеятельности( ИсходящиеДанные, ВходящиеДанные, Источник, Приемник, ТипПриемника, Значение, Выражение,,,,,,,,,,,,,,,,,,,,,,,,,,, Отказ);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;НомерСтроки = НомерСтроки + 1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;КонецЦикла;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ВходящиеДанные = СоздатьОбъект("СписокЗначений");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ВходящиеДанные.Установить("РазделУчета", Параметры.РазделУчета);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Если Параметры.ДатаВводаОстатков = Параметры.ДатаКонцаПериодаВыгрузки Тогда
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ВходящиеДанные.Установить("Дата", Параметры.ДатаВводаОстатков - 1);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Иначе
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ВходящиеДанные.Установить("Дата", Параметры.ДатаКонцаПериодаВыгрузки);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;КонецЕсли;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ВходящиеДанные.Установить("ОтражатьВБухгалтерскомУчете", 1);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ВходящиеДанные.Установить("ОтражатьВНалоговомУчете", 1);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ВходящиеДанные.Установить("ОтражатьПоСпециальнымРегистрам", 1);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ВходящиеДанные.Установить("ВходящиеОстатки", Параметры.ТаблицаОстатковМПЗ);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ВыгрузитьПоПравилу(,,ВходящиеДанные,, "ВводНачальныхОстатков");


КонецФункции // ВыгрузитьОстаткиПрочихРасходов()
 
Читают тему
(гостей: 1)

Быстрый переход