К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Бухгалтерия 7.7, Релиз 625. Ошибка печати в Отчете "АктСверки".

Гость
0 - 03.12.2016 - 14:11
Процедуру Печать(), следует переписать так:
Начиная со строки: ТаблицаДвижений.ВыбратьСтроки();

ТаблицаДвижений.ВыбратьСтроки();
Пока ТаблицаДвижений.ПолучитьСтроку()=1 Цикл

Операция = СокрЛП(ТаблицаДвижений.Операция);
Поз = Найти(Операция, "Счет-фактура");

Если Поз > 0 Тогда
Операция = Сред(Операция, 0, Поз - 1) + РазделительСтрок + Сред(Операция, Поз);
КонецЕсли;

ОперД = Операция;

Если Согласован = 1 Тогда
НомК = Ном;
ДебетК = ТаблицаДвижений.Кредит;
КредитК = ТаблицаДвижений.Дебет;

Если Лев(Операция, 8) = "Передано" Тогда
ОперК = "Принято" + Сред(Операция, 9);

ИначеЕсли Лев(Операция, 7) = "Принято" Тогда
ОперК = "Передано" + Сред(Операция, 8);

ИначеЕсли Лев(Операция, 7) = "Продажа" Тогда
ОперК = "Приход" + Сред(Операция, 8);

ИначеЕсли Лев(Операция, 6) = "Приход" Тогда
ОперК = "Продажа" + Сред(Операция, 7);

Иначе
ОперК = Операция;
КонецЕсли;
КонецЕсли;
Таб.ВывестиСекцию("Строка");
Ном = Ном + 1;
КонецЦикла;


//- Иначе - в печатную форму, в режиме Согласован=0, не выводятся данные поля "Наименование операции, документы".
- Разработчик 1С небрежно правил алгоритм и нарушил логику при внесении изменений.
- примите к сведению.



Гость
1 - 03.12.2016 - 15:33
0-perpetum > Добавлю.
В релизе обновленный отчет АктСверки получил дополнительный флажок "ВыводитьСчетаФактуры",
при этом цикл заполнения выборки документов неоптимален:
- для режимов ВыводитьСчетаФактуры=1 и ВыводитьСчетаФактуры=0
- приходится всякий раз заполнять таблицу движений, что при значительном объеме выборки требует значительного времени.

Предлагаю для оптимизации - найти условие Если ВыводитьСчетаФактуры = 1 Тогда и закомментировать так:
//Если ВыводитьСчетаФактуры = 1 Тогда
Здесь заполняется таблица движений - ничего не закомментируем.
//КонецЕсли

- тогда в таблице движений будет всегда присутствовать строка с дополнением по Счет-фактуре.

А в модуле Печать()/уже модифицированного документа по 0-perpetum >/, вместо:

Если Поз > 0 Тогда
Операция = Сред(Операция, 0, Поз - 1) + РазделительСтрок + Сред(Операция, Поз);
КонецЕсли;

исправляем на:

Если Поз > 0 Тогда
Если ВыводитьСчетаФактуры=1 Тогда
Операция = Сред(Операция, 0, Поз - 1) + РазделительСтрок + Сред(Операция, Поз);
Иначе
Операция = Сред(Операция, 0, Поз - 1);
КонецЕсли;
КонецЕсли;

Тогда при печати, можно выводить в печатную форму акта сверки по значению флажка:
ВыводитьСчетаФактуры=1 - вывод со счет-фактурой,
или ВыводитьСчетаФактуры=0 - вывод без счет-фактуры,
без повторного заполнения таблицы движений.
Гость
2 - 03.12.2016 - 16:17
0-perpetum > сразу заметила :( но если ставить галку "согласовано", то печатает нормально обе половины... некоторым вернула старый, некоторые потерпят до исправления...
3 - 04.12.2016 - 02:49
Кто-то в 1С очень осерчал на акты сверки - они их, в итоге, сломали во всех бухгалтериях. В БП3.0 обещали исправить в релизе 3.0.45...
Гость
4 - 04.12.2016 - 03:25
Мои давно не пользуются типовым актом, в нем слишком много тупого дубака. Юзают мои переделки внешние.
У многих автомат стоит (в начале года добавляет распечатанные акты к накладным), почти у всех есть авторассылка актов ...
Так что, (3) - это хорошая новость из серии "тогда мы идем к вам" и вы узнаете что такое автоматизация, чего стоят типовые
от 1С и что работа в 1С превращается отдых, если отказаться от типового функционала в мою пользу ...
Гость
5 - 04.12.2016 - 06:01
Кому надо, выложил rar-архив исправленного Акта Сверки с расшифровкой печатной формы по строкам документов.

Пакет доступен по ссылке:
http://disk.tom.ru/tj3kqe3
6 - 04.12.2016 - 12:42
у мну акты сверки печататся из торгбазы, поэтому всякие ошибки чужие - пофиг, своих хватает.. ;-)
Гость
7 - 08.12.2016 - 01:35
1-perpetum > Предполагается, что пользователь может в таблице отредактировать вид операции вручную после её заполнения. Поэтому писать туда лишнюю информацию про счета-фактуры, если она не нужна, не комильфо. Так что тут оставим как есть.
Гость
8 - 08.12.2016 - 01:52
0-perpetum > А вот косяк похуже: выданные счета-фактуры на аванс могут выписываться на основании документа "Выписка". И если на основании выписки, в которой есть оплата по нужному клиенту, выписан авансовый счет-фактура по другому клиенту, то этот СФ попадёт в чужой акт сверки. Для правки надо перед поиском СФ вставить проверку на вид документа-основания.
Ну и ещё немножко: СФ может быть выставлен в течение 5 дней от отгрузки, а подчиненные документы выбираются строго за период отгрузки. Так что часть СФ может пролетать мимо акта сверки.
И ещё мелочь: по каждому документу делается открытие выборки ВыбратьПодчиненныеДокументы() не зависимо от значения флажка "ВыводитьСчетаФактуры". Зачем? Ведь это не самая быстрая выборка, почему не убрать её в условие?
Чёто как-то многовато косяков и косячков на 10 добавленных строчек кода. Удручающе.
Гость
9 - 08.12.2016 - 01:55
Для справочника "КлассификаторТНВЭД" форму списка забыли сделать - некрасиво...
Гость
10 - 08.12.2016 - 01:59
Ну и вангую - новая реготчетность не будет работать на конфигурациях ранее 625 из-за новой константы "КодОКВЭД2".
Гость
11 - 08.12.2016 - 08:11
Цитата:
Сообщение от Харлампий Дымба Посмотреть сообщение
0-perpetum > А вот косяк похуже: выданные счета-фактуры на аванс могут выписываться на основании документа "Выписка". И если на основании выписки, в которой есть оплата по нужному клиенту, выписан авансовый счет-фактура по другому клиенту, то этот СФ попадёт в чужой акт сверки. Для правки надо перед поиском СФ вставить проверку на вид документа-основания. Ну и ещё немножко: СФ может быть выставлен в течение 5 дней от отгрузки, а подчиненные документы выбираются строго за период отгрузки. Так что часть СФ может пролетать мимо акта сверки. И ещё мелочь: по каждому документу делается открытие выборки ВыбратьПодчиненныеДокументы() не зависимо от значения флажка "ВыводитьСчетаФактуры". Зачем? Ведь это не самая быстрая выборка, почему не убрать её в условие? Чёто как-то многовато косяков и косячков на 10 добавленных строчек кода. Удручающе.
Безобразие, конечно, как работают спецы в 1С, но...
- Не всё так плохо, как кажется! :-)
- Действительно, этот "спец" из 1С не потрудился проверить логику в части обработки подчинённых документов.
Мало того, что ОН в цикле ввёл создание подчиненного документа и получить пустое значение Документа, так он не отфильтровал подчиненные документы по Контрагенту - (ПодчДок.Контрагент=Контрагент) в запросе Акта сверки и по Опер.Сумма - (ПодчДок.Итог("Всего")=Опер.Сумма), в случае многострочного документа Выписка...
Потребовалось ввести незначительное изменение кода и всё пошло на ять.
Кстати, по поводу якобы дополнительно большого объёма выборки по подчинённым документам - неверное утверждение... - проверка замером производительности под отладчиком, показала, что выборка по подчинённым документам, с уже отлаженным мной кодом, составила всего 2% времени от общего времени заполнения АктаСверки.

Прикладываю ссылку на архив исправленного отчета АктСверки:
Пакет доступен по ссылке: http://disk.tom.ru/f2pwaw1
- кому нужно - качайте, смотрите.
Гость
12 - 10.12.2016 - 22:26
12-perpetum > Помниться под SQL ВыбратьПодчиненныеДокументы() один из самых тормозных операторов, а уж если период не указан, то вдвойне. В любом случае, писать ВыбратьПодчиненныеДокументы(); условие; ПолучитьДокумент() - вообще не айс.
Гость
13 - 10.12.2016 - 23:32
Цитата:
Сообщение от Харлампий Дымба Посмотреть сообщение
12-perpetum > Помниться под SQL ВыбратьПодчиненныеДокументы() один из самых тормозных операторов, а уж если период не указан, то вдвойне. В любом случае, писать ВыбратьПодчиненныеДокументы(); условие; ПолучитьДокумент() - вообще не айс.
Так вы посмотрели?
- Чтобы не быть голословным, посмотрите замер производительности под отладчиком сами...
- У меня весь модуль выборки и анализа подчиненных документов в цикле - не превысил 2% времени от общего времени заполнения АктаСверки.
- Конечно, я провёл некоторую оптимизацию и такие затратные операторы, как создать "Документ" и получить пустое значение "Документ"
- вывел за пределы циклов акта сверки, иначе добавилось бы ещё 2%.
Поэтому результат получился неплохим.- Такой задержкой можно пренебречь.

Кстати, в период выборки по подчинённым документам, таки, добавил ваше предложение - дополнительные 5 дней к верхней дате выборки.

- И вообще - спасибо, что не прошли мимо - ваше сообщение было важным!
:-)
Гость
14 - 12.12.2016 - 19:15
Про ВыбратьПодчиненныеДокументы() под SQL можно погуглить "30.12.9999". Я бурчал больше про то, что открывать выборку, а перебор загонять под условие - моветон. Режет глаз у любого программиста, жаль что не у писателя типовой.
Про "2% после оптимизации" - напомнило школьную задачку про арбуз, усохший до 98% воды. Ведь можно так наоптимизровать, что функция, занимавшая 50% времени, станет отнимать всего 2%. Для этого надо замедлить скорость формирования оставшейся части отчета в ~25 раз:-)
Гость
15 - 12.12.2016 - 21:21
Цитата:
Сообщение от Харлампий Дымба Посмотреть сообщение
Про ВыбратьПодчиненныеДокументы() под SQL можно погуглить "30.12.9999". Я бурчал больше про то, что открывать выборку, а перебор загонять под условие - моветон.... /пофиксено "бла-бла".../
Хм... "ПивоваровИван"="ХарлампийДымба" :-)
Про проблему выбора подчинённых документов, связанную с интерпретацией нижней и верхней дат выборки в SQL - почитал, но к нашей теме - для базы типовой эта проблема никак не относится.
Такая же проблема имеет место быть и в запросах по OLE, однако, всё решается просто установкой непустых дат.
Теперь по существу.
Приведите, пожалуйста, пример запроса для типовой - не под SQL - и чтобы выборка подчиненных документов, с условиями отбора "не резала глаз" любого программиста.
- Приму к сведению - правда - учусь, учусь, да не в коня овёс...! :-)
- Не было надобности, обходился простыми вещами, потому и не знаю иных дорог.
- Да и было бы интересно сравнить производительность в Запросе и в Переборе по подчиненным документам выборки.
Гость
16 - 13.12.2016 - 00:01
15-perpetum > Пивоваров Иван - погоняло, суть "человек под вымышленным именем". Так у нас в интернате называл себя каждый, когда ночнушка зашухерит на девчачьем этаже. А Харлампий Дымба - настоящее имя.

Что режет глаз:
Док.ВыбратьПодчинененныеДокументы();
Если ВыводитьСФ=1 Тогда
Пока Док.ПолучитьДокументы()=1 Цикл
Что не режет глаз:
Если ВыводитьСФ=1 Тогда
Док.ВыбратьПодчинененныеДокументы();
Пока Док.ПолучитьДокументы()=1 Цикл
Претензии были к конструкции: открыли выборку, посмотрели нужна ли она нам, начали перебор. А надо сначала посмотреть нужна ли нам выборка, а потом уже открывать.
Всё.

У типовой конфигурации проблемы с актом сверки нет, так как период в выборке указан. Но достаточно других мест, где период не указан. Достаточно сделать глобальный поиск по "ВыбратьПодчиненныеДокументы". Когда-то давно в комплексной базе под SQL я поимел кучу проблем из-за операции с пустой датой, с тех пор тупо ограничиваю период и сплю спокойно.

Можно я больше не буду на тему подчиненных документов рассуждать и скорости замерять? А то у меня тут интересная опа образовалась в ЗИКе, требует пристального внимания.
Гость
17 - 13.12.2016 - 00:19
16-Харлампий Дымба > ОК, спасибо! :-)
Гость
18 - 16.12.2016 - 12:04
Аналогичная ошибка и в упрощенке :(
Гость
19 - 16.12.2016 - 12:07
А выложенный акт в упрощенке не работает :(
Гость
20 - 16.12.2016 - 12:40
Цитата:
Сообщение от shotsdv2008 Посмотреть сообщение
Аналогичная ошибка и в упрощенке :(
Цитата:
Сообщение от shotsdv2008 Посмотреть сообщение
А выложенный акт в упрощенке не работает :(
- Ага - там АктСверки, вероятно, писал другой чел, со своими заморочками - но идея - та же.
Сейчас выложу АктСверки для упрощёнки.
Ну вот:
Пакет доступен по ссылке: http://disk.tom.ru/q1ewbzk
Гость
21 - 17.12.2016 - 20:50
Спасибо, мил человеК :)
Только, пожалуйста, на будущее, архивы не называй кириллицей :)
Гость
22 - 27.12.2016 - 16:20
Кой-чего подправили в 626. Выборку убрали под условие) Исправили ошибку пустой строки, если галка "Согласовано" не стоит. До "Выписки" и авансовых СФ пока не добрались.
Гость
23 - 27.12.2016 - 20:15
22-Харлампий Дымба > - Спасибо, пока ещё не скачивал.
Но у себя нашёл ошибку и сделал поправку.

В случае, когда по выписке, по одному и тому же контрагенту есть несколько авансовых сч-фактур
на одинаковую сумму, выбиралась только первая сч-фактура в выборке подчиненных документов,
остальные из списка подчиненных пропадали.

Для исправления ситуации,- ввёл список значений, в котором стал фиксировать обрабатываемую сч-фактуру
и если она уже отработана, то теперь - проверкой в списке значений - обработанная сч-фактура исключается.

Таким образом, ошибка дублирования ссылки на одну и ту же сч-фактуру, с одинаковой суммой, исключена,
все фактуры с одинаковыми суммами попадают в АктСверки, как отдельные операции, с авансовым сч-фактурой
и ссылкой на одну и ту же выписку.

По просьбе пользователей АктаСверки, сохранил АктСверки для ОСН и УСН
в поименованный латиницей файл rar-архив. AktSverky_OSN_USN.rar.
- Кому надо - скачивайте.
Гость
24 - 27.12.2016 - 20:46
СПАСИБО!!!
Гость
25 - 28.12.2016 - 12:39
Спасибо за разбор ошибки!
Гость
26 - 28.12.2016 - 19:14
В связи с выходом Бухгалтерий 7.7
- ОСН, Релиз 626;
- УСН, Релиз 268,
выложил обновления по отчету АктСверки.
Скачивайте файл:
AktSverky__OSN_626__USN_268.rar
Гость
27 - 03.01.2017 - 22:10
Большое спасибо!


К списку вопросов






Copyright ©, Все права защищены