|   |   | 
| 
 | УПП 1.3.88.2 - после обновления длительное формирование книги продаж | ☑ | ||
|---|---|---|---|---|
| 0
    
        NorthWind 05.04.17✎ 10:43 | 
        Добрый день. Несколько дней назад обновился с 1.3.87.1 до 1.3.88.2.
 Довольно много продаж, примерно 10 000 реализаций в месяц. Раньше операция заполнения документа "Формирование книги продаж" шла минут 5-10, сейчас - 40. Еще никто не смотрел, чего такого туда понапихали? | |||
| 1
    
        Пузан 05.04.17✎ 10:46 | 
        Уже вышла 1.3.89.2 :)     | |||
| 2
    
        NorthWind 05.04.17✎ 10:56 | 
        Ого, оперативненько они. Ладно, тогда обновлюсь сегодня, посмотрим как оно     | |||
| 3
    
        bizon2008 05.04.17✎ 10:58 | 
        (2) Не надо, жди следующего. Тама ошибка у них где-то, аж сервер 1С падает.     | |||
| 4
    
        NorthWind 05.04.17✎ 10:59 | 
        (3) в процессе чего падает? Просто НДС ведь сдавать, меня бухи задерут если вопрос не решить с заполнением     | |||
| 5
    
        NorthWind 05.04.17✎ 11:00 | 
        ее перезаполняют в день по десять раз     | |||
| 6
    
        Пузан 05.04.17✎ 11:11 | 
        (4) НДС сдавать в конце месяца, еще сто раз все исправят.     | |||
| 7
    
        Пузан 05.04.17✎ 11:12 | 
        (3) О какой ошибке идет речь? Я как раз сейчас обновляю. Или это шутка была такая?     | |||
| 8
    
        NorthWind 05.04.17✎ 11:38 | 
        (6) дело в том что у нас НДС довольно громоздкий. За три месяца тридцать тыс доков, не так уж мало. Поэтому исправлять ошибки, довводить документы и смотреть что получается - начинают заранее. И тормозисторы при заполнении книг ну никак не катят.     | |||
| 9
    
        bizon2008 05.04.17✎ 16:15 | 
        (7) Нет не шутка, пришлось откатится.     | |||
| 10
    
        NorthWind 05.04.17✎ 16:17 | 
        (9) какая версия платформы и в каких случаях падает? Подробнее написать можете?     | |||
| 11
    
        NorthWind 05.04.17✎ 17:30 | 
        у кого-нибудь еще наблюдались проблемы с 89.2 как пишет (3)?     | |||
| 12
    
        NorthWind 06.04.17✎ 07:51 | 
        Апну с вашего позволения. При пользовании 89.2 ни у кого не наблюдались проблемы?     | |||
| 13
    
        NorthWind 06.04.17✎ 12:33 | 
        Ну что ж, еще раз ап, последний. Если нет, то видимо, надо самому пробовать обновляться.     | |||
| 14
    
        Джинн 06.04.17✎ 12:51 | 
        (12) На копию сейчас накатил - не падает. Долго - не долго оценить не могу. Это субъективно.     | |||
| 15
    
        Джинн 06.04.17✎ 12:54 | 
        (14) + Но немного подождите - погоняю еще по полной программе. С проведение по регистрам НДС, авансами и пр. хренью.     | |||
| 16
    
        Джинн 06.04.17✎ 13:07 | 
        Прогнал два месяца и заполнил - проблем не обнаружил. Правда записей немного - 800-900 в месяц. Не сезон. Может на больших проявится? Автор утверждения о баге что-то не колется.     | |||
| 17
    
        shuhard 06.04.17✎ 13:29 | 
        (16) смысла тестировать 88.2 уже нет,
 89.2 на зарплатном блоке живуча | |||
| 18
    
        Операция 1Ы 06.04.17✎ 13:35 | 
        ап, я сейчас готовлюсь к тому чтобы 89.2 накатить, колитесь что за проблемы? (3) В каких ситуациях падает? , а то вбросил и ушел.     | |||
| 19
    
        Джинн 06.04.17✎ 13:43 | 
        (17) Дык постепенно до нее и накатываю :) А тут аккурат в момент наличия 88.2 люди вопрос задали. Почему бы не помочь, если есть возможность?     | |||
| 20
    
        NorthWind 06.04.17✎ 16:09 | 
        (15) сейчас сам разворачиваю бэкап в тестовую базу, еще полчасика примерно осталось, потом накатывать обновку буду. Спасибо, что откликнулись!     | |||
| 21
    
        Операция 1Ы 06.04.17✎ 17:04 | 
        (20)на файловой все нормально, ничего не упало, сейчас на сервер натяну.     | |||
| 22
    
        NorthWind 07.04.17✎ 17:57 | 
        Проблема из (0) в обновлении 89.2 решена не была. Пришлось разбираться. Выяснилось, что дело в резко увеличившемся количестве С-Ф, на которые надо разносить оплату, и ммм... специфическом алгоритме этого самого распределения оплат в Модуле документа ФормированиеЗаписейКнигиПродаж. В этом алгоритме выполняется цикл по нескольким десяткам тысяч строк дерева, на каждой итерации которого запускается запрос из ПостроителяЗапроса (???!!!) к таблице значений, где тоже несколько десятков тысяч элементов. Пришлось проиндексировать таблицу и выкинуть нафиг построитель, переписав код через НайтиСтроки (). Разноска 500 фактур после этого вместо 40 секунд стала занимать 0-1. Если кому интересно, могу опубликовать код.     | |||
| 23
    
        Джинн 07.04.17✎ 18:17 | 
        (22) Давайте.     | |||
| 24
    
        NorthWind 07.04.17✎ 19:26 | 
        (23) Модифицируется процедура РаспределитьОплатыПоДеревуСФ в Модуле объекта документа ФормированиеЗаписейКнигиПродаж. По коду следующие пометки:
 // [-] VVP и далее комментированный фрагмент - "родной" 1Совский код был удален; // [+] VVP { <фрагмент> // } - фрагмент был добавлен мной. Если фрагмент однострочный, фигурных скобок нет, просто предполагается что строка ниже коммента вставлена мной. [code] Процедура РаспределитьОплатыПоДеревуСФ(Дерево_НДСНачисленный, ТаблицаРезультатов, СписокСчетовФактур, РаспределенныеОплаты, ОтражатьВРеестре = Истина, ОтражатьВидНачисления = Ложь ) НДСНалоговыйПериод = Неопределено; // [-] VVP - удаляем подготовку построителя и его отбора //Построитель_РаспределенныеОплаты = Новый построительЗапроса(); //Построитель_РаспределенныеОплаты.ИсточникДанных = Новый ОписаниеИсточникаДанных(РаспределенныеОплаты); // Подготовка структуры отбора //Отбор = Построитель_РаспределенныеОплаты.Отбор; //Отбор.Добавить("СчетФактура"); //Отбор.СчетФактура.Использование = Истина; //Отбор.Добавить("РаспределеннаяОплата"); //Отбор.РаспределеннаяОплата.ВидСравнения = ВидСравнения.Больше; //Отбор.РаспределеннаяОплата.Значение = 0; //Отбор.РаспределеннаяОплата.Использование = Истина; //Построитель_РаспределенныеОплаты.Порядок.Добавить("ДатаОплаты"); ТаблицаОплат = Новый ТаблицаЗначений(); ТаблицаОплат.Колонки.Добавить("ДокументОплаты"); ТаблицаОплат.Колонки.Добавить("ДатаОплаты",Новый ОписаниеТипов("Дата", , , Новый КвалификаторыДаты(ЧастиДаты.ДатаВремя))); ТаблицаОплат.Колонки.Добавить("СуммаОплаты",Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15,2))); // [-] VVP - удаляем ссылку на таблицу источника построителя // ТаблицаИсточникаПостроителя = Построитель_РаспределенныеОплаты.ИсточникДанных.ИсточникДанных; // [+] VVP - делаем свою "таблицу источника построителя" и индексируем ее { ТаблицаИсточникаПостроителя = РаспределенныеОплаты.Скопировать (); ТаблицаИсточникаПостроителя.Индексы.Добавить ("СчетФактура"); ВыборкаОплат = РаспределенныеОплаты.СкопироватьКолонки (); // } МоментОпределения_ПоОтгрузке = Перечисления.МоментыОпределенияНалоговойБазыНДС.ПоОтгрузке; Для каждого СтрокаСФ Из Дерево_НДСНачисленный.Строки Цикл ТаблицаОплат.Очистить(); Если УчетНДС.ДляСчетаФактурыНеТребуетсяОплата(СтрокаСФ.СчетФактура) Тогда НаличиеОплатыНеТребуется = Истина; Иначе НаличиеОплатыНеТребуется = (СтрокаСФ.Строки[0].МоментОпределенияНалоговойБазыНДС = МоментОпределения_ПоОтгрузке) Или Дата >= '20080101'; // [-] VVP - удаляем запрос построителем //Отбор = Построитель_РаспределенныеОплаты.Отбор; //Отбор.СчетФактура.Значение = СтрокаСФ.СчетФактура; //Отбор.РаспределеннаяОплата.ВидСравнения = ?(СтрокаСФ.СуммаСНДС>0,ВидСравнения.Больше,ВидСравнения.Меньше); // //Построитель_РаспределенныеОплаты.Выполнить(); //Если Построитель_РаспределенныеОплаты.Результат.Пустой() и не НаличиеОплатыНеТребуется и СтрокаСФ.СуммаСНДС >= 0 Тогда // // Оплата не обнаружена // Продолжить; //КонецЕсли; // //ВыборкаОплат = Построитель_РаспределенныеОплаты.Результат.Выгрузить(ОбходРезультатаЗапроса.Прямой); // [+] VVP - делаем свой запрос данных через НайтиСтроки и далее навигацией по строкам { МассивСтрокОплатПоСФ = ТаблицаИсточникаПостроителя.НайтиСтроки (Новый Структура ("СчетФактура", СтрокаСФ.СчетФактура)); ВыборкаОплат.Очистить (); Для Каждого СтрокаОплатыПоСФ Из МассивСтрокОплатПоСФ Цикл Если ((СтрокаСФ.СуммаСНДС > 0) И (СтрокаОплатыПоСФ.РаспределеннаяОплата > 0)) или ((СтрокаСФ.СуммаСНДС <= 0) И (СтрокаОплатыПоСФ.РаспределеннаяОплата < 0)) Тогда СтрокаВыборкиОплат = ВыборкаОплат.Добавить (); Для каждого Колонка из ВыборкаОплат.Колонки Цикл ИндексКолонки = ВыборкаОплат.Колонки.Индекс (Колонка); СтрокаВыборкиОплат.Установить(ИндексКолонки, СтрокаОплатыПоСФ.Получить (ИндексКолонки)); КонецЦикла; КонецЕсли; КонецЦикла; ВыборкаОплат.Сортировать ("ДатаОплаты"); // } СуммаКПогашению = СтрокаСФ.СуммаСНДС; Для каждого СтрокаРаспределеннойОплаты Из ВыборкаОплат Цикл [/code] ... далее пошел неизменный код процедуры. Ниже в нем есть ссылка на ТаблицаИсточникаПостроителя, она отработает корректно. | |||
| 25
    
        NorthWind 07.04.17✎ 19:34 | 
        Сейчас еще по коду вижу, что не обработал ситуацию, когда ничего найти не удалось. В оригинальном коде в этом случае идет переход на следующую итерацию:
 Если Построитель_РаспределенныеОплаты.Результат.Пустой() и не НаличиеОплатыНеТребуется и СтрокаСФ.СуммаСНДС >= 0 Тогда // Оплата не обнаружена Продолжить; КонецЕсли; Соответственно, в моем случае также следует добавить МассивСтрокОплатПоСФ = ТаблицаИсточникаПостроителя.НайтиСтроки (Новый Структура ("СчетФактура", СтрокаСФ.СчетФактура)); Если МассивСтрокОплатПоСФ.Количество ()=0 и не НаличиеОплатыНеТребуется и СтрокаСФ.СуммаСНДС >= 0 Тогда Продолжить; КонецЕсли; | |||
| 26
    
        Злопчинский 07.04.17✎ 19:48 | 
        А просветитель я чего-то отстал от жизни Нафига какая-то разноска опдат по счф? | |||
| 27
    
        NorthWind 07.04.17✎ 21:03 | 
        (26) Ну дык штатный механизм УПП 1.3 для момента определения налоговой базы НДС "по оплате". Используется при заполнении табличной части документа "Формирование записей книги продаж".     | |||
| 28
    
        Злопчинский 07.04.17✎ 21:24 | 
        (27) что-то я совсем туплю не в теме. А где сейчас НДС по оплате?     | |||
| 29
    
        NorthWind 07.04.17✎ 21:55 | 
        (28) Вообще по отгрузке, но там такая история: если оплата по данному документу требуется, то механизм, который они предусмотрели в этом заполнении, должен выполняться. Иначе книга продаж кривая получится. Поэтому либо надо дожидаться, пока 30 тысяч раз отработает построитель, либо чего-то придумывать.     | |||
| 30
    
        Злопчинский 08.04.17✎ 02:53 | 
        (29) опять нифига не понял Как какая-то оплата каких-то счетфактур влияет на книгу продаж? | |||
| 31
    
        Пузан 08.04.17✎ 06:02 | 
        Может имеет смысл забанить бизона, за вброс, дезинформацию, вандализм и издевательство над психикой 1С-ников?     | |||
| 32
    
        NorthWind 08.04.17✎ 07:20 | 
        (30) если у вас клиент платит (что авансом, что после) сразу за много поставок и это происходит многократно, то обязательно частичные оплаты будут. В этом случае - вот что написано в справке по доку: 
 При политике «по отгрузке», если была частичная оплата по счету-фактуре то суммы оплаты и остатка попадают разными строками, для оплаченной суммы указывается документ оплаты, при этом в отчете «Книга продаж» они отражаются одной строкой. Т.е. какая бы политика по НДС у вас не была, оплаты этим документом все равно просматриваются, такая логика его работы. | |||
| 33
    
        NorthWind 08.04.17✎ 07:42 | 
        по коду в (24) видно, что вне зависимости от политики момента возникновения НДС, оплаты оно обязательно запрашивает для всех фактур, кроме тех, у которых УчетНДС.ДляСчетаФактурыНеТребуетсяОплата(СтрокаСФ.СчетФактура). Я не вижу смысла спорить правильно это или нет, но оно - вот такое, так спецы из 1С решили.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |