|
УПП 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С решили.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |