фармэксперт.учёт:отчёты:torg29

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
фармэксперт.учёт:отчёты:torg29 [07032025/ 09:27] – создано Олег Поникаренкофармэксперт.учёт:отчёты:torg29 [29112025/ 11:27] (текущий) – Дописал как считается "Сумма розн НДС" #67592 Рощупкин Олег
Строка 1: Строка 1:
-==== Инструкция для пользователя по настройке товарного отчета (форма ТОРГ-29) ====+==== Товарный отчет (форма ТОРГ-29) ====
  
 Товарный отчет (форма ТОРГ-29) позволяет пользователю получить информацию о суммовом движении товаров на складе за выбранный период времени. В данной инструкции описаны все возможные настройки отчета, их назначение и правила работы. Товарный отчет (форма ТОРГ-29) позволяет пользователю получить информацию о суммовом движении товаров на складе за выбранный период времени. В данной инструкции описаны все возможные настройки отчета, их назначение и правила работы.
Строка 12: Строка 12:
  
 ==== Настройка складов ==== ==== Настройка складов ====
-* **Описание:** Позволяет выбрать один или несколько складов, по которым будет сформирован отчет. +  * **Описание:** Позволяет выбрать один или несколько складов, по которым будет сформирован отчет. 
-* **Как настроить:** +  * **Как настроить:** 
-  * В интерфейсе отчета откройте вкладку "Склад"+    * В интерфейсе отчета откройте вкладку "Склад"
-  * Выберите склад(ы) из списка доступных. Для выбора нескольких складов удерживайте клавишу `Ctrl` (или аналогичную для вашей системы) и кликайте по нужным складам. +    * Выберите склад(ы) из списка доступных. Для выбора нескольких складов удерживайте клавишу `Ctrl` (или аналогичную для вашей системы) и кликайте по нужным складам. 
-  * Если склад не выбран, отчет не будет сформирован (см. проверку в методе `validate`). +    * Если склад не выбран, отчет не будет сформирован (см. проверку в методе `validate`). 
-* **Отображение данных при выборе нескольких складов:** +   * **Отображение данных при выборе нескольких складов:** 
-  * Если выбрано несколько складов, данные по всем выбранным складам агрегируются в единый отчет. +    * Если выбрано несколько складов, данные по всем выбранным складам агрегируются в единый отчет. 
-  * В шапке отчета в секции "по складу" указываются названия всех выбранных складов, разделенные запятыми (см. метод `_render`, формирование `unitName`). +    * В шапке отчета в секции "по складу" указываются названия всех выбранных складов, разделенные запятыми (см. метод `_render`, формирование `unitName`). 
-  * Суммы и операции по каждому складу суммируются без разделения по складам в итоговой таблице, если не включена детализация. +    * Суммы и операции по каждому складу суммируются без разделения по складам в итоговой таблице, если не включена детализация. 
-* **Особенности:** +   * **Особенности:** 
-  * Если выбран только один склад, совпадающий с текущим складом пользователя (`cnf()->myUnit()`), появляется дополнительная опция "Добавить данные по локальным складам" (см. ниже). +    * Если выбран только один склад, совпадающий с текущим складом пользователя (`cnf()->myUnit()`), появляется дополнительная опция "Добавить данные по локальным складам" (см. ниже). 
-  * При выборе нескольких складов детализация по локальным складам недоступна.+    * При выборе нескольких складов детализация по локальным складам недоступна.
  
 ==== Опция "Добавить данные по локальным складам" ==== ==== Опция "Добавить данные по локальным складам" ====
-* **Описание:** Добавляет в отчет данные по локальным складам, связанным с основным выбранным складом. +  * **Описание:** Добавляет в отчет данные по локальным складам, связанным с основным выбранным складом. 
-* **Условие активации:** Доступна только если выбран один склад и он совпадает с текущим складом пользователя (`cnf()->myUnit()`). +  * **Условие активации:** Доступна только если выбран один склад и он совпадает с текущим складом пользователя (`cnf()->myUnit()`). 
-* **Как работает:** +  * **Как работает:** 
-  * При активации этой опции к основному складу автоматически добавляются все локальные склады, указанные в конфигурации (`cnf()->localUnits()`). +    * При активации этой опции к основному складу автоматически добавляются все локальные склады, указанные в конфигурации (`cnf()->localUnits()`). 
-  * Данные по локальным складам включаются в общий расчет сумм и операций, но не выделяются отдельно в отчете. +    * Данные по локальным складам включаются в общий расчет сумм и операций, но не выделяются отдельно в отчете. 
-* **Отображение:** В шапке отчета названия локальных складов добавляются к основному складу через запятую.+  * **Отображение:** В шапке отчета названия локальных складов добавляются к основному складу через запятую.
  
 ==== Опция "Округлять суммы в отчете до копеек" ==== ==== Опция "Округлять суммы в отчете до копеек" ====
-* **Описание:** Применяет округление всех суммовых значений в отчете до двух знаков после запятой (копеек). +  * **Описание:** Применяет округление всех суммовых значений в отчете до двух знаков после запятой (копеек). 
-* **Как работает:** +  * **Как работает:** 
-  * Если опция включена, метод `roundValuesToKopeika` корректирует значения в структуре `TLineData` (b1, b2, b3, b4, b5 и их аналоги без НДС) так, чтобы итоговые суммы сходились с детализацией по НДС (10%, 20%, без НДС). +    * Если опция включена, метод `roundValuesToKopeika` корректирует значения в структуре `TLineData` (b1, b2, b3, b4, b5 и их аналоги без НДС) так, чтобы итоговые суммы сходились с детализацией по НДС (10%, 20%, без НДС). 
-  * Округление выполняется с учетом возможных расхождений, распределяя разницу между значениями (см. метод `roundValuesToKopeika`). +    * Округление выполняется с учетом возможных расхождений, распределяя разницу между значениями (см. метод `roundValuesToKopeika`). 
-* **Влияние:** +  * **Влияние:** 
-  * Включение этой опции может привести к небольшим расхождениям в итоговых суммах между столбцами, так как округление применяется к каждому блоку отдельно. +    * Включение этой опции может привести к небольшим расхождениям в итоговых суммах между столбцами, так как округление применяется к каждому блоку отдельно. 
-  * Без этой опции суммы выводятся с полной точностью, что может привести к значениям с большим количеством знаков после запятой.+    * Без этой опции суммы выводятся с полной точностью, что может привести к значениям с большим количеством знаков после запятой.
  
 === Вкладка "Временной интервал" === === Вкладка "Временной интервал" ===
  
-* **Описание:** Определяет период, за который формируется отчет. +  * **Описание:** Определяет период, за который формируется отчет. 
-* **Как настроить:** +  * **Как настроить:** 
-  * Откройте вкладку "Временной интервал"+    * Откройте вкладку "Временной интервал"
-  * Укажите начальную дату (`left`) и конечную дату (`right`) в соответствующих полях. +    * Укажите начальную дату (`left`) и конечную дату (`right`) в соответствующих полях. 
-  * По умолчанию начальная дата — текущая дата минус один месяц, конечная дата — текущая дата (28 февраля 2025 года). +    * По умолчанию начальная дата — текущая дата минус один месяц, конечная дата — текущая дата (28 февраля 2025 года). 
-* **Как работает:** +  * **Как работает:** 
-  * Все операции, выполненные в период между начальной и конечной датами (включительно), включаются в отчет. +    * Все операции, выполненные в период между начальной и конечной датами (включительно), включаются в отчет. 
-  * Даты используются в SQL-запросах (например, `po.addDate>=? and po.addDate<=?`). +    * Даты используются в SQL-запросах (например, `po.addDate>=? and po.addDate<=?`). 
-* **Отображение:** +  * **Отображение:** 
-  * В шапке отчета указывается отчетный период в формате "с DD.MM.YYYY по DD.MM.YYYY" (см. метод `headerNumberBlock`). +    * В шапке отчета указывается отчетный период в формате "с DD.MM.YYYY по DD.MM.YYYY" (см. метод `headerNumberBlock`). 
-  * Остаток на начало периода выводится в строке "Остаток на начало DD.MM.YYYY".+    * Остаток на начало периода выводится в строке "Остаток на начало DD.MM.YYYY".
  
 === Вкладка "Настройка столбцов" === === Вкладка "Настройка столбцов" ===
  
-* **Описание:** Позволяет выбрать, какие столбцы будут отображаться в отчете, и определяет порядок их формирования. +  * **Описание:** Позволяет выбрать, какие столбцы будут отображаться в отчете, и определяет порядок их формирования. 
- +  * **Доступные столбцы:** Список столбцов задается в `pList` в конструкторе `torg29Report`: 
-* **Доступные столбцы:** Список столбцов задается в `pList` в конструкторе `torg29Report`: +  -   "Опт Без НДС" — оптовая сумма без учета НДС.
- +
-     -   "Опт Без НДС" — оптовая сумма без учета НДС.+
   -      "Опт с НДС" — оптовая сумма с учетом НДС.   -      "Опт с НДС" — оптовая сумма с учетом НДС.
   -      "Сумма опт НДС" — разница между оптовой суммой с НДС и без НДС.   -      "Сумма опт НДС" — разница между оптовой суммой с НДС и без НДС.
   -      "Розн Без НДС" (или "Продажа опт Без НДС") — розничная сумма без НДС (название зависит от конфигурации `unit.orderIncomeProvider`).   -      "Розн Без НДС" (или "Продажа опт Без НДС") — розничная сумма без НДС (название зависит от конфигурации `unit.orderIncomeProvider`).
   -      "Розн с НДС" (или "Продажа опт с НДС") — розничная сумма с НДС.   -      "Розн с НДС" (или "Продажа опт с НДС") — розничная сумма с НДС.
-  -      "Сумма розн НДС" — разница между розничной суммой с НДС и без НДС.+  -      "Сумма розн НДС" — разница между розничной суммой с НДС и без НДС. Столбец показывает сумму НДС, рассчитанную от розничной стоимости товара на основе выбранной ставки НДС. Программа выбирает ставку НДС автоматически. Если включён функционал **[[фармэксперт.учёт:номенклатурный_каталог:розничный_ндс|розничного НДС]]**, используются ставки, указанные в Номенклатурном каталоге. Если функционал не задействован, применяется оптовая ставка НДС из накладной поставщика. Для позиций со ставками 5% и 7% оптовая ставка устанавливается равной 0, так как эти ставки не являются общеустановленными для расчёта НДС.
   -      "Наценка от Без НДС" — разница между розничной суммой с НДС и оптовой без НДС.   -      "Наценка от Без НДС" — разница между розничной суммой с НДС и оптовой без НДС.
   -      "Наценка от с НДС" — разница между розничной суммой с НДС и оптовой с НДС.   -      "Наценка от с НДС" — разница между розничной суммой с НДС и оптовой с НДС.
   -      "Наценка от Без НДС в %" — процент наценки от оптовой суммы без НДС.   -      "Наценка от Без НДС в %" — процент наценки от оптовой суммы без НДС.
   -      "Наценка от с НДС в %" — процент наценки от оптовой суммы с НДС.   -      "Наценка от с НДС в %" — процент наценки от оптовой суммы с НДС.
-* **Как настроить:** +  * **Как настроить:** 
-  * Откройте вкладку "Настройка столбцов"+    * Откройте вкладку "Настройка столбцов"
-  * Отметьте галочками столбцы, которые нужно включить в отчет. +    * Отметьте галочками столбцы, которые нужно включить в отчет. 
-  * Порядок столбцов в интерфейсе соответствует порядку их вывода в отчете (слева направо). +    * Порядок столбцов в интерфейсе соответствует порядку их вывода в отчете (слева направо). 
-* **Правила работы:** +  * **Правила работы:** 
-  * Минимум один столбец должен быть выбран, иначе отчет не сформируется (проверка в `validate`). +    * Минимум один столбец должен быть выбран, иначе отчет не сформируется (проверка в `validate`). 
-  * Выбранные столбцы отображаются в таблице в порядке их следования в `pList`. +    * Выбранные столбцы отображаются в таблице в порядке их следования в `pList`. 
-  * Данные для каждого столбца рассчитываются в методе `line` на основе структуры `TLineData` (b1, nb1 и др.). +    * Данные для каждого столбца рассчитываются в методе `line` на основе структуры `TLineData` (b1, nb1 и др.). 
-* **Отображение:** +  * **Отображение:** 
-  * В заголовке таблицы столбцы группируются по блокам: "Товар (весь)", "ЖНВЛС" (если включена детализация), "НДС 10", "НДС 20%", "Без НДС" (см. метод `header`). +    * В заголовке таблицы столбцы группируются по блокам: "Товар (весь)", "ЖНВЛС" (если включена детализация), "НДС 10", "НДС 20%", "Без НДС" (см. метод `header`). 
-  * Каждый блок повторяет выбранные столбцы в указанном порядке.+    * Каждый блок повторяет выбранные столбцы в указанном порядке.
  
 === Вкладка "Настройка детализации" === === Вкладка "Настройка детализации" ===
Строка 89: Строка 87:
  
 ==== 1. Выводить детализацию по ЖНВЛС ==== ==== 1. Выводить детализацию по ЖНВЛС ====
-* **Описание:** Добавляет блок "ЖНВЛС" в таблицу, показывающий суммы для товаров, отнесенных к ЖНВЛС (жизненно необходимые и важнейшие лекарственные средства). +  * **Описание:** Добавляет блок "ЖНВЛС" в таблицу, показывающий суммы для товаров, отнесенных к ЖНВЛС (жизненно необходимые и важнейшие лекарственные средства). 
-* **Как работает:** +  * **Как работает:** 
-  * Если включено, в таблице появляется дополнительный блок столбцов "ЖНВЛС" с выбранными столбцами из "Настройка столбцов"+    * Если включено, в таблице появляется дополнительный блок столбцов "ЖНВЛС" с выбранными столбцами из "Настройка столбцов"
-  * Данные для ЖНВЛС извлекаются из поля `pdGNVLS.value` в SQL-запросах (например, `sum(case when pdGNVLS.value=1 then ...)`). +    * Данные для ЖНВЛС извлекаются из поля `pdGNVLS.value` в SQL-запросах (например, `sum(case when pdGNVLS.value=1 then ...)`). 
-* **Отображение:** Блок "ЖНВЛС" следует за блоком "Товар (весь)"+  * **Отображение:** Блок "ЖНВЛС" следует за блоком "Товар (весь)"
 +  
 ==== 2. Выводить детализацию по НДС ==== ==== 2. Выводить детализацию по НДС ====
-* **Описание:** Добавляет блоки "НДС 10%", "НДС 20%" и "Без НДС" в таблицу, разделяя суммы по ставкам НДС. +  * **Описание:** Добавляет блоки "НДС 10%", "НДС 20%" и "Без НДС" в таблицу, разделяя суммы по ставкам НДС. 
-* **Как работает:** +  * **Как работает:** 
-  * Если включено, данные делятся на три категории в зависимости от ставки НДС (10%, 18/20%, без НДС), определяемой полем `detailNDS` или `detailNDSSale`. +    * Если включено, данные делятся на три категории в зависимости от ставки НДС (10%, 18/20%, без НДС), определяемой полем `detailNDS` или `detailNDSSale`. 
-  * Расчет выполняется в SQL-запросах с условиями вроде `sum(case when %7=10 then ...)` (см. методы `bDetailSale`, `bDetailCashlessDoc` и др.). +    * Расчет выполняется в SQL-запросах с условиями вроде `sum(case when %7=10 then ...)` (см. методы `bDetailSale`, `bDetailCashlessDoc` и др.). 
-* **Отображение:** Блоки следуют за "Товар (весь)" и "ЖНВЛС" (если включен). +  * **Отображение:** Блоки следуют за "Товар (весь)" и "ЖНВЛС" (если включен). 
 +  
 ==== 3. Распределение сумм по ставкам НДС при детализации по НДС ==== ==== 3. Распределение сумм по ставкам НДС при детализации по НДС ====
-* **Описание:** Определяет, как распределяются суммы по ставкам НДС в детализированных данных. +  * **Описание:** Определяет, как распределяются суммы по ставкам НДС в детализированных данных. 
- +   
-* **Варианты:**+  * **Варианты:**
     -  Розничные продажи по РознНДС операции, остальные операции по ОптНДС:     -  Розничные продажи по РознНДС операции, остальные операции по ОптНДС:
       * Для розничных продаж используется НДС из `poNDS.nds`, для остальных операций — `pdNDSPercent.value`.       * Для розничных продаж используется НДС из `poNDS.nds`, для остальных операций — `pdNDSPercent.value`.
Строка 114: Строка 112:
   -    Распределение по Розн.НДС на момент операции:   -    Распределение по Розн.НДС на момент операции:
       * Используется `po.data3` (НДС на момент операции) для всех операций.       * Используется `po.data3` (НДС на момент операции) для всех операций.
-* **Как работает:** +  * **Как работает:** 
-  * Выбранный вариант влияет на переменные `detailNDS` и `detailNDSSale` в методе `_render`. +    * Выбранный вариант влияет на переменные `detailNDS` и `detailNDSSale` в методе `_render`. 
-  * Эти переменные определяют логику условий в SQL-запросах. +    * Эти переменные определяют логику условий в SQL-запросах. 
-* **Отображение:** Влияет на значения в блоках "НДС 10%", "НДС 20%" и "Без НДС".+  * **Отображение:** Влияет на значения в блоках "НДС 10%", "НДС 20%" и "Без НДС". 
 +   
 +[[фармэксперт.учёт:отчёты:prod_kkm#расчёт_ндс_в_соответствии_с_офд|Расчёт НДС при продаже через ККМ в соответствии с ОФД]]
  
 ==== 4. Выводить детализацию по операциям ==== ==== 4. Выводить детализацию по операциям ====
-* **Описание:** Включает разбивку операций по дням или документам в зависимости от типа операции. +  * **Описание:** Включает разбивку операций по дням или документам в зависимости от типа операции. 
-* **Как работает:** +  * **Как работает:** 
-  * Если включено, для каждого типа операции (например, продажи, приход, расход) добавляются строки с детализацией (см. методы `bDetailSale`, `detailOperationLavel1` и др.). +    * Если включено, для каждого типа операции (например, продажи, приход, расход) добавляются строки с детализацией (см. методы `bDetailSale`, `detailOperationLavel1` и др.). 
-  * Без этой опции данные агрегируются по группам без разбивки. +    * Без этой опции данные агрегируются по группам без разбивки. 
-* **Отображение:** Под каждой группой операций появляются строки с датой, номером документа и суммами.+  * **Отображение:** Под каждой группой операций появляются строки с датой, номером документа и суммами.
  
 ==== 5. При отключенной детализации выделять скидку в продажах ==== ==== 5. При отключенной детализации выделять скидку в продажах ====
-* **Описание:** Выделяет сумму скидок в блоке продаж, даже если детализация по операциям отключена. +  * **Описание:** Выделяет сумму скидок в блоке продаж, даже если детализация по операциям отключена. 
-* **Как работает:** +  * **Как работает:** 
-  * Если включено, скидки рассчитываются отдельно в методе `bDetailDiscount` и добавляются как отдельные строки. +    * Если включено, скидки рассчитываются отдельно в методе `bDetailDiscount` и добавляются как отдельные строки. 
-* **Отображение:** Скидки отображаются в блоке "Расход. Продажа" с комментарием. +  * **Отображение:** Скидки отображаются в блоке "Расход. Продажа" с комментарием.
 ==== 6. Номера накладных поставщика в детализации приходных накладных ==== ==== 6. Номера накладных поставщика в детализации приходных накладных ====
-* **Описание:** Включает номера накладных поставщика в строках детализации приходных накладных. +  * **Описание:** Включает номера накладных поставщика в строках детализации приходных накладных. 
-* **Как работает:** +  * **Как работает:** 
-  * Если включено, в методе `detailOperationLavel2` для операции типа 1 (приход) используется поле `x.internalNumber` вместо `d.number`. +    * Если включено, в методе `detailOperationLavel2` для операции типа 1 (приход) используется поле `x.internalNumber` вместо `d.number`. 
-* **Отображение:** В столбце "номер" отображается номер накладной поставщика. +  * **Отображение:** В столбце "номер" отображается номер накладной поставщика. 
- +   
-==== 7. Внутренние номера накладных в детализации приходных накладных ==== +  ==== 7. Внутренние номера накладных в детализации приходных накладных ==== 
-* **Описание:** Включает внутренние номера накладных в строках детализации приходных накладных. +  * **Описание:** Включает внутренние номера накладных в строках детализации приходных накладных. 
-* **Как работает:** +  * **Как работает:** 
-  * Если включено, используется поле `d.number`. Если включены оба варианта (поставщика и внутренние), номера комбинируются через "/"+    * Если включено, используется поле `d.number`. Если включены оба варианта (поставщика и внутренние), номера комбинируются через "/"
-* **Отображение:** В столбце "номер" отображается внутренний номер или комбинация номеров. +  * **Отображение:** В столбце "номер" отображается внутренний номер или комбинация номеров. 
- +   
-==== 8. Номера КСФ при детализации возвратов поставщикам ==== +  ==== 8. Номера КСФ при детализации возвратов поставщикам ==== 
-* **Описание:** Включает номера корректировочных счетов-фактур (КСФ) в детализации возвратов. +  * **Описание:** Включает номера корректировочных счетов-фактур (КСФ) в детализации возвратов. 
-* **Как работает:** +  * **Как работает:** 
-  * Если включено, в методе `detailOperationLavel2` для операции типа 6 используется поле `cashlessAttr.corrSchetFact`. +    * Если включено, в методе `detailOperationLavel2` для операции типа 6 используется поле `cashlessAttr.corrSchetFact`. 
-* **Отображение:** В столбце "номер" отображается номер КСФ вместо стандартного номера документа. +  * **Отображение:** В столбце "номер" отображается номер КСФ вместо стандартного номера документа. 
- +   
-==== 9. Не группировать по поставщикам в детализации приходных накладных ==== +  ==== 9. Не группировать по поставщикам в детализации приходных накладных ==== 
-* **Описание:** Отключает группировку приходных накладных по поставщикам. +  * **Описание:** Отключает группировку приходных накладных по поставщикам. 
-* **Как работает:** +  * **Как работает:** 
-  * Если включено, метод `detailOperationLavel1` для операции типа 1 вызывает `detailOperationLavel2` напрямую, минуя группировку. +    * Если включено, метод `detailOperationLavel1` для операции типа 1 вызывает `detailOperationLavel2` напрямую, минуя группировку. 
-* **Отображение:** Каждая накладная отображается отдельной строкой без промежуточных итогов по поставщикам. +  * **Отображение:** Каждая накладная отображается отдельной строкой без промежуточных итогов по поставщикам. 
- +   
-==== 10. Не детализировать по накладным в блоке Приходная накладная ==== +  ==== 10. Не детализировать по накладным в блоке Приходная накладная ==== 
-* **Описание:** Убирает разбивку по накладным в блоке приходных операций. +  * **Описание:** Убирает разбивку по накладным в блоке приходных операций. 
-* **Как работает:** +  * **Как работает:** 
-  * Если включено, метод `detailOperationLavel2` для операции типа 1 не вызывается, и данные агрегируются. +    * Если включено, метод `detailOperationLavel2` для операции типа 1 не вызывается, и данные агрегируются. 
-* **Отображение:** Блок "Приходная накладная" содержит только общие суммы без детализации. +  * **Отображение:** Блок "Приходная накладная" содержит только общие суммы без детализации. 
- +   
-==== 11. Исключать блоки с галками ==== +  ==== 11. Исключать блоки с галками ==== 
-* **Описание:** Позволяет исключить из отчета определенные блоки операций. +  * **Описание:** Позволяет исключить из отчета определенные блоки операций. 
-* **Варианты:** +  * **Варианты:** 
-  * "Приход. Возврат продажи" +    * "Приход. Возврат продажи" 
-  * "Приход. Излишки" +    * "Приход. Излишки" 
-  * "Расход. Продажа" +    * "Расход. Продажа" 
-  * "Расход. Списание" +    * "Расход. Списание" 
-  * "Прочие. Переоценка" +    * "Прочие. Переоценка" 
-  * "Прочие. Разукомплектация" +    * "Прочие. Разукомплектация" 
-* **Как работает:** +  * **Как работает:** 
-  * Отмеченные блоки исключаются из расчета в методе `_render` (проверка `excludeBlock.contains()`). +    * Отмеченные блоки исключаются из расчета в методе `_render` (проверка `excludeBlock.contains()`). 
-  * Исключение может привести к расхождению итогов с содержимым отчета (предупреждение в интерфейсе). +    * Исключение может привести к расхождению итогов с содержимым отчета (предупреждение в интерфейсе). 
-* **Отображение:** Исключенные блоки не появляются в таблице. +  * **Отображение:** Исключенные блоки не появляются в таблице. 
 +  
 ==== 12. Выделять комиссию в отчете ==== ==== 12. Выделять комиссию в отчете ====
-* **Описание:** Разделяет отчет на две части: без комиссии и по комиссии. +  * **Описание:** Разделяет отчет на две части: без комиссии и по комиссии. 
-* **Как работает:** +  * **Как работает:** 
-  * Если включено, отчет формируется дважды: +    * Если включено, отчет формируется дважды: 
-    * Сначала с фильтром `pdCommission.value=0` (без комиссии). +      * Сначала с фильтром `pdCommission.value=0` (без комиссии). 
-    * Затем с фильтром `pdCommission.value!=0` (по комиссии). +      * Затем с фильтром `pdCommission.value!=0` (по комиссии). 
-  * Оба отчета выводятся последовательно с разделителем (`hr()`). +    * Оба отчета выводятся последовательно с разделителем (`hr()`). 
-* **Отображение:** Заголовок отчета дополняется "(без комиссии)" или "(по комиссии)".+  * **Отображение:** Заголовок отчета дополняется "(без комиссии)" или "(по комиссии)".
  
 === Вкладка "Подписи" === === Вкладка "Подписи" ===
  
-* **Описание:** Позволяет настроить подписи и ориентацию печати. +  * **Описание:** Позволяет настроить подписи и ориентацию печати. 
-* **Опции:** +  * **Опции:** 
-  * Верхняя подпись: Добавляет блок подписей в начало отчета (материально-ответственное лицо и заведующая/бухгалтер). +    * Верхняя подпись: Добавляет блок подписей в начало отчета (материально-ответственное лицо и заведующая/бухгалтер). 
-  * Нижняя подпись: Добавляет блок подписей в конец отчета (руководитель, материально-ответственное лицо, бухгалтер/заведующая). +    * Нижняя подпись: Добавляет блок подписей в конец отчета (руководитель, материально-ответственное лицо, бухгалтер/заведующая). 
-  * Ориентация печати: Выбор между книжной (Portrait) и альбомной (Landscape) ориентацией. +    * Ориентация печати: Выбор между книжной (Portrait) и альбомной (Landscape) ориентацией. 
-* **Как работает:** +  * **Как работает:** 
-  * Подписи формируются в методах `printTopSignBlock` и `printBottomSignBlock` с использованием данных из конфигурации (`unit.my.somebodyPersonFIO`, `unit.my.rukovod` и др.). +    * Подписи формируются в методах `printTopSignBlock` и `printBottomSignBlock` с использованием данных из конфигурации (`unit.my.somebodyPersonFIO`, `unit.my.rukovod` и др.). 
-  * Ориентация задается через `defaultPrinterOrientation`. +    * Ориентация задается через `defaultPrinterOrientation`. 
-* **Отображение:** +  * **Отображение:** 
-  * Верхняя подпись: перед таблицей. +    * Верхняя подпись: перед таблицей. 
-  * Нижняя подпись: после таблицы с указанием количества приложенных документов (`docCount`).+    * Нижняя подпись: после таблицы с указанием количества приложенных документов (`docCount`).
  
 === Вкладка "Тип позиций" === === Вкладка "Тип позиций" ===
  
-* **Описание:** Фильтрует данные по типу позиций (Мираптек и маркировка). +  * **Описание:** Фильтрует данные по типу позиций (Мираптек и маркировка). 
-* **Опции:** +  * **Опции:** 
-  * Мираптек: +    * Мираптек: 
-    * "Все позиции" — без фильтрации. +      * "Все позиции" — без фильтрации. 
-    * "Кроме Мираптек" — исключает позиции с `pdMiraptek.value=1`. +      * "Кроме Мираптек" — исключает позиции с `pdMiraptek.value=1`. 
-    * "Только Мираптек" — включает только позиции с `pdMiraptek.value=1`. +      * "Только Мираптек" — включает только позиции с `pdMiraptek.value=1`. 
-  * Маркировка: +    * Маркировка: 
-    * Условие фильтрации задается через `statementMarked().condition` (например, по `pdMark.value`). +      * Условие фильтрации задается через `statementMarked().condition` (например, по `pdMark.value`). 
-* **Как работает:** +  * **Как работает:** 
-  * Фильтры применяются в SQL-запросах через условия `mirAptek` и `markedCondition`. +    * Фильтры применяются в SQL-запросах через условия `mirAptek` и `markedCondition`. 
-* **Отображение:** Влияет на выборку данных, но не выделяется отдельно в отчете.+  * **Отображение:** Влияет на выборку данных, но не выделяется отдельно в отчете.
  
 === Правила и рекомендации === === Правила и рекомендации ===
  
 1. **Обязательные настройки:** Выбор склада и хотя бы одного столбца — обязательные условия для формирования отчета. 1. **Обязательные настройки:** Выбор склада и хотя бы одного столбца — обязательные условия для формирования отчета.
 +
 2. **Детализация и производительность:** Включение большого числа опций детализации может увеличить время формирования отчета. 2. **Детализация и производительность:** Включение большого числа опций детализации может увеличить время формирования отчета.
 +
 3. **Расхождения в суммах:** Исключение блоков или округление до копеек может привести к несоответствиям в итогах. 3. **Расхождения в суммах:** Исключение блоков или округление до копеек может привести к несоответствиям в итогах.
 +
 4. **Экспорт:** Для больших отчетов рекомендуется использовать CSV, так как HTML и XLSX имеют ограничения по количеству строк (см. `report.maxRowsForRenderHtml` и `report.maxRowsForRenderExcel`). 4. **Экспорт:** Для больших отчетов рекомендуется использовать CSV, так как HTML и XLSX имеют ограничения по количеству строк (см. `report.maxRowsForRenderHtml` и `report.maxRowsForRenderExcel`).
  
 Эта инструкция охватывает все настройки товарного отчета и поможет вам адаптировать его под ваши задачи. Если возникнут вопросы, обратитесь к администратору системы! Эта инструкция охватывает все настройки товарного отчета и поможет вам адаптировать его под ваши задачи. Если возникнут вопросы, обратитесь к администратору системы!
  • фармэксперт.учёт/отчёты/torg29.1741328864.txt.gz
  • Последнее изменение: 07032025/ 09:27
  • Олег Поникаренко