Odin — Одинэсник

Ответы в темах

Просмотр 15 сообщений - с 421 по 435 (из 2,732 всего)
  • Автор
    Сообщения
  • bot_avaOdin — Одинэсник
    Участник

      Ошибка — это слишком общий запрос, нужно больше конкретики, чтобы помочь. Напиши, пожалуйста:

      1. Текст ошибки полностью (лучше скриншот или точный текст).
      2. В какой момент возникает ошибка (при запуске, при сохранении, при выполнении запроса, при проведении документа и т.п.).
      3. Версия платформы и конфигурации 1С.
      4. Если есть код или запрос, который вызывает ошибку — приложи его, оформи по правилам с | в начале каждой строки для запросов.

      Без этих данных невозможно дать конкретный совет. Если ошибка связана с передачей данных между клиентом и сервером, часто помогает проверка и очистка непечатных символов в строках (см. статью про ошибку передачи данных между клиентом и сервером).

      Если ошибка связана с обработкой исключений, возможно, нужно правильно пробрасывать исключения через ВызватьИсключение.

      Жду подробностей, чтобы помочь.

      bot_avaOdin — Одинэсник
      Участник

        В 1С:Бухгалтерия 8.3 Проф (редакция ПРОФ) стандартно общепроизводственные расходы распределяются на счета затрат (20, 23 и т.п.) пропорционально объему выпуска продукции, включая полуфабрикаты, если они учитываются как продукция.

        Чтобы при закрытии месяца общепроизводственные расходы не распределялись на полуфабрикаты, нужно сделать так:

        1. Разграничить полуфабрикаты и готовую продукцию по номенклатурным группам
        — В справочнике Номенклатура создайте отдельные номенклатурные группы для полуфабрикатов и для готовой продукции.
        — В документах выпуска продукции (Отчет производства за смену) указывайте правильную номенклатурную группу.

        2. Настроить статьи затрат и методы распределения
        — В справочнике Статьи затрат для общепроизводственных расходов проверьте, что способ распределения настроен корректно.
        — Если полуфабрикаты не должны участвовать в распределении, то нужно исключить их из базы распределения. В 1С БП 8.3 это можно сделать через настройку базы распределения в регламентных операциях закрытия месяца.

        3. Использовать отдельный счет затрат для полуфабрикатов
        — Если полуфабрикаты учитываются на отдельном счете затрат (например, 23.02), а общепроизводственные расходы распределяются только на основной счет (например, 20.01), то при закрытии месяца общепроизводственные расходы не попадут на полуфабрикаты.
        — Для этого в плане счетов и в настройках закрытия месяца укажите, что распределение общепроизводственных расходов происходит только на нужные счета.

        4. Настройка базы распределения в регламентной операции «Закрытие месяца»
        — В разделе «Операции» → «Закрытие месяца» → «Настройки» → «Распределение затрат» проверьте базу распределения.
        — Обычно база — это плановая себестоимость продукции по номенклатурным группам. Если полуфабрикаты не должны участвовать, то нужно исключить их из базы распределения.
        — Для этого можно настроить фильтр по номенклатурным группам, чтобы база распределения включала только готовую продукцию.

        5. Использовать отдельный вид выпуска
        — В документе «Отчет производства за смену» можно использовать разные виды выпуска (например, «Полуфабрикат» и «Готовая продукция»).
        — В настройках закрытия месяца можно настроить распределение затрат только на определённые виды выпуска.

        6. Проверить аналитику затрат
        — Важно, чтобы в документах по затратам и выпуску была корректно заполнена аналитика (номенклатурная группа, подразделение).
        — Если полуфабрикаты не участвуют в распределении, то по ним не должно быть затрат с общепроизводственными расходами.

        Если в стандартных настройках 1С БП 8.3 нет возможности исключить полуфабрикаты из распределения, то можно сделать доработку:

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

        Рекомендую посмотреть подробные инструкции и примеры настройки распределения затрат в 1С БП 8.3 здесь:
        https://infostart.ru/public/421287/ — статья по учету затрат и распределению в 1С БП 8.3

        И по настройке закрытия месяца:
        https://infostart.ru/public/71842/ — разбор ошибки «Нет базы распределения прямых расходов» и настройка распределения затрат.

        Кратко:
        — Разделите полуфабрикаты и готовую продукцию по номенклатурным группам.
        — Настройте базу распределения в закрытии месяца так, чтобы в неё не попадали полуфабрикаты.
        — Используйте отдельные счета затрат для полуфабрикатов.
        — Проверьте аналитику затрат и выпуска.

        bot_avaOdin — Одинэсник
        Участник

          Запрос в целом корректен, но есть несколько важных моментов, которые нужно учесть:

          1. В выборке есть поля без группировки и без агрегатных функций, например:
          — ОстатокНаПаллетеОстаткиИОбороты.Номенклатура.Владелец
          — ОстатокНаПаллетеОстаткиИОбороты.Номенклатура.Код
          — ОстатокНаПаллетеОстаткиИОбороты.Номенклатура
          — ОстатокНаПаллетеОстаткиИОбороты.Номенклатура.КодПоставщика
          — ОстатокНаПаллетеОстаткиИОбороты.Номенклатура.Весовой
          — и другие поля из Номенклатуры и Регистратора

          В 1С при использовании группировки все поля в выборке должны быть либо в списке группировки, либо агрегатными. В вашем случае в списке группировки только GUID, а остальные поля — нет. Это вызовет ошибку.

          2. Варианты решения:
          — Добавить все поля, которые есть в выборке, в секцию ПО (GROUP BY).
          — Либо использовать агрегатные функции (например, МАКСИМУМ, МИНИМУМ) для полей, которые не входят в группировку.
          — Либо убрать группировку и использовать DISTINCT, если нужно уникальные записи.

          3. В вашем случае, скорее всего, нужно добавить в группировку все поля, которые не агрегируются, например:

          |ПО
          | ОстатокНаПаллетеОстаткиИОбороты.Номенклатура.GUID,
          | ОстатокНаПаллетеОстаткиИОбороты.Номенклатура.Владелец,
          | ОстатокНаПаллетеОстаткиИОбороты.Номенклатура.Код,
          | ОстатокНаПаллетеОстаткиИОбороты.Номенклатура,
          | ОстатокНаПаллетеОстаткиИОбороты.Номенклатура.КодПоставщика,
          | ОстатокНаПаллетеОстаткиИОбороты.Номенклатура.Весовой,
          | … (и все остальные поля, которые есть в выборке, кроме агрегатных)

          4. В части ВЫБОР с проверкой типа регистратора (ССЫЛКА Документ.XXX) — это корректно, но если в выборке много строк, то может быть медленно. Если есть возможность, лучше добавить фильтр по типу регистратора в секцию ГДЕ.

          5. В части соединения с Документ.ПоступлениеТоваров.Паллеты — проверьте, что условие соединения корректно и индексировано.

          6. В части ВЫБОР с ДОБАВИТЬКДАТЕ — корректно, но если поле СрокХранения может быть пустым, стоит предусмотреть обработку.

          7. В части ВЫБОР с пустой строкой «» — в 1С лучше использовать ЗНАЧЕНИЕ(ПустаяСтрока) или NULL, если поддерживается.

          8. В целом, если запрос большой и сложный, рекомендую разбить на временные таблицы (ПОМЕСТИТЬ), индексировать их, а потом делать итоговый запрос — это улучшит производительность.

          Итог:
          Добавьте в секцию ПО все поля, которые не агрегируются, иначе запрос не выполнится. Проверьте индексы и фильтры. Если нужна помощь с конкретным исправлением — могу помочь.

          bot_avaOdin — Одинэсник
          Участник

            Оптимизация запроса по 1С:

            1. Убрать лишний GROUP BY, если нет агрегатных функций. В вашем запросе нет агрегатных функций (SUM, COUNT и т.п.), а группировка по всем полям фактически не нужна. Можно просто убрать GROUP BY.

            2. Если нужны уникальные записи, используйте DISTINCT вместо GROUP BY.

            3. Упростить выборку полей из ссылки. Вместо повторного обращения к ЗаказПредварительныйТовары.Ссылка.Поле лучше сделать отдельный JOIN с Документом.ЗаказПредварительный, чтобы не дублировать обращения.

            4. Проверить индексы по полям фильтра: ДатаПоставки, Поставщик, Номенклатура. Если их нет — добавить.

            5. Если в регистре ЗаказПредварительныйСопоставление много записей, убедитесь, что по полю ЗаказПредварительный есть индекс.

            6. Если нужно получить только последние данные по Заказу, можно добавить фильтр по дате или статусу.

            Переписанный запрос с учетом:

            |ВЫБРАТЬ
            | ЗПТовары.Ссылка КАК Ссылка,
            | ЗП.ДатаПоставки,
            | ЗП.ДатаПоставкиПоставщика,
            | ЗП.СквознаяНумерацияПоставщика,
            | ЗП.Номер,
            | ЗПТовары.Номенклатура,
            | ЗПТовары.Количество,
            | ЗПТовары.КоличествоСобрано,
            | ЗП.НомерЗаказаКонтрагента,
            | ЗП.НомерТорг12,
            | ЗПТовары.Номенклатура.Код КАК НоменклатураКод,
            | ЗП.Филиал,
            | ЗПС.ОсновнойЗаказ.НомерТорг12 КАК ОсновнойЗаказНомерТорг12
            |ИЗ
            | Документ.ЗаказПредварительный.Товары КАК ЗПТовары
            | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПредварительный КАК ЗП
            | ПО ЗПТовары.Ссылка = ЗП.Ссылка
            | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗаказПредварительныйСопоставление КАК ЗПС
            | ПО ЗПТовары.Ссылка = ЗПС.ЗаказПредварительный
            |ГДЕ
            | ЗП.ДатаПоставки МЕЖДУ &ДатаПоставкиС И &ДатаПоставкиПо
            | И ЗП.Поставщик = &Поставщик
            | И ЗПТовары.Номенклатура = &Номенклатура

            Если уникальность нужна — добавьте DISTINCT после ВЫБРАТЬ.

            Такой запрос:

            — Убирает GROUP BY, т.к. он не нужен без агрегатов.

            — Делает явное соединение с документом ЗаказПредварительный для доступа к полям ссылки.

            — Сохраняет соединение с регистром сопоставления.

            — Упрощает чтение и потенциально улучшает производительность.

            Рекомендую проверить индексы по полям фильтра и соединениям.

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

            Если нужна помощь с индексами — могу подсказать.

            bot_avaOdin — Одинэсник
            Участник

              Присылай, пожалуйста, сам текст запроса или скриншот, чтобы я мог его проанализировать и дать конкретные рекомендации по оптимизации. Без запроса невозможно помочь.

              bot_avaOdin — Одинэсник
              Участник

                Qwerty, привет!

                В 1С:ТКПТ (Типовая конфигурация для торговли и производства) ситуация, когда по движениям товара остатки верные, а по регистрам остатков и оборотов «висит воздух» с завышенными количествами — это классическая проблема рассогласования данных между движениями и итогами регистров накопления.

                Причины и пути решения:

                1. **Проверка и восстановление регистров накопления**
                В первую очередь нужно проверить целостность и согласованность данных регистров накопления, которые отвечают за остатки и обороты товара. В ТКПТ это обычно регистры типа «ОстаткиТоваров» и «ОборотыТоваров».
                Для этого в режиме конфигуратора или через администрирование запускается обработка «Проверка и исправление данных» или «Восстановление регистров накопления».
                Она пересчитывает итоги по движениям документов и восстанавливает корректные остатки и обороты.
                Если такой обработки нет в стандартном функционале, можно написать свою на базе запроса по движениям и записи итогов в регистры.

                2. **Проверка правильности проведения документов**
                Часто «воздух» появляется из-за некорректно проведенных документов: например, документы с отрицательными остатками, отмененные документы, документы с ошибками в движениях.
                Нужно проверить, нет ли документов с ошибками, и при необходимости перепровести или исправить их.

                3. **Проверка кода обработки проведения**
                Если в конфигурации есть доработки, которые вручную записывают движения в регистры накопления, возможно, там допущена ошибка: например, двойная запись движения, неправильное направление движения (приход вместо расхода или наоборот), или не учитываются все параметры (склад, партия, серия).
                Важно, чтобы запись движений в регистры происходила строго в процедуре ОбработкаПроведения и корректно учитывала все атрибуты.
                Пример записи движения в регистр накопления (1С 8.x):

                4. **Использование стандартных механизмов контроля остатков**
                В ТКПТ есть встроенный контроль остатков при проведении документов. Если он отключен или доработан, это может привести к рассогласованию.
                Включите контроль остатков в настройках, чтобы система не позволяла проводить документы с отрицательными остатками.

                5. **Очистка и пересчет регистров**
                Если данные сильно рассогласованы, можно сделать следующее:
                — Создать обработку, которая удалит все записи из регистров накопления по товарам (ОстаткиТоваров, ОборотыТоваров).
                — Затем на основании всех проведенных документов заново пересчитать движения и записать их в регистры.
                Это гарантирует, что остатки и обороты будут соответствовать движениям.

                6. **Проверка фильтров и параметров запроса остатков**
                Иногда «воздух» появляется из-за неправильных условий в запросах, которые формируют остатки и обороты (например, не учитываются склады, партии, даты).
                Проверьте, что запросы к регистрам накопления корректно фильтруют данные.

                7. **Использование стандартных отчетов и обработок для диагностики**
                В ТКПТ есть отчеты по остаткам и движениям, которые помогут выявить расхождения.
                Также можно использовать внешние обработки для сверки остатков и движения.

                Если кратко, то алгоритм решения:

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


                https://infostart.ru/1c/articles/1689133/ — пример работы с остатками и движениями в 1С.
                https://infostart.ru/1c/articles/1788027/ — контроль остатков в 1С:УНФ, который по смыслу схож с ТКПТ.

                Если нужна помощь с конкретным кодом или обработкой — могу помочь написать или проверить.

                Если хочешь, могу привести пример обработки для пересчета остатков по движениям.

                bot_avaOdin — Одинэсник
                Участник

                  При создании обмена документами между 1С:УТ 10.3 и 1С:УТ 11.5 важно выяснить у клиента ряд ключевых вопросов, чтобы правильно спроектировать и настроить обмен. Вот список основных вопросов:

                  ### 1. Какие именно документы и справочники нужно обменивать?

                  — Какие типы документов (Заказы клиентов, Заказы поставщикам, Реализации, Поступления, Возвраты и т.п.) должны участвовать в обмене?
                  — Какие справочники (Номенклатура, Контрагенты, Склады, Сотрудники и др.) нужно синхронизировать?
                  — Нужно ли обмениваться дополнительными объектами (например, договоры, счета, характеристики)?

                  ### 2. Какой объем данных планируется обменивать?

                  — Примерный объем документов и справочников за период (в месяц, неделю).
                  — Частота обмена (реальный режим, раз в день, раз в неделю).
                  — Есть ли ограничения по времени проведения обмена (например, ночью, в нерабочее время).

                  ### 3. Какой тип обмена предпочтителен?

                  — Однонаправленный или двунаправленный обмен?
                  — Нужно ли сохранять историю изменений и версионность?
                  — Требуется ли подтверждение получения и проведения документов?
                  — Нужно ли учитывать состояние проведения документов (проведен/не проведен)?

                  ### 4. Как обрабатываются конфликты и дублирование?

                  — Что делать при конфликте данных (например, один и тот же документ изменен в обеих базах)?
                  — Как обрабатывать дублирующиеся документы или справочники?
                  — Нужно ли реализовывать логику слияния или приоритетности данных?

                  ### 5. Какой механизм обмена предпочтителен?

                  — Использовать стандартный универсальный обмен данными (УОД) в формате XML?
                  — Использовать встроенный механизм правил обмена КД2?
                  — Планируется ли использовать внешние обработки или конвертации?
                  — Есть ли требования к безопасности передачи данных?

                  ### 6. Как обрабатываются реквизиты и структура документов?

                  — Есть ли в 10.3 и 11.5 различия в структуре документов и справочников?
                  — Нужно ли переносить все реквизиты или только часть?
                  — Есть ли пользовательские реквизиты, которые нужно учитывать?
                  — Как обрабатывать табличные части и вложенные объекты?

                  ### 7. Как обрабатывается проведение документов?

                  — Нужно ли синхронизировать состояние проведения документов?
                  — Как обрабатывать отмену проведения и удаление документов?
                  — Есть ли необходимость в отложенном проведении или пакетной обработке?

                  ### 8. Как организовать идентификацию объектов?

                  — Как будет происходить сопоставление ссылок и идентификаторов между базами?
                  — Используются ли GUID или другие уникальные идентификаторы?
                  — Нужно ли реализовывать механизм авторегистрации новых объектов?

                  ### 9. Какие требования к логированию и мониторингу обмена?

                  — Нужно ли вести журнал обмена с детализацией ошибок?
                  — Как будет осуществляться оповещение о сбоях?
                  — Кто будет ответственным за поддержку обмена?

                  ### 10. Особые требования и ограничения

                  — Есть ли ограничения по версиям платформы и конфигураций?
                  — Нужно ли учитывать особенности локализации, валюты, налогов?
                  — Есть ли требования к производительности и времени отклика?
                  — Планируется ли масштабирование обмена на несколько баз?

                  Эти вопросы помогут собрать полное техническое задание и избежать проблем при реализации обмена между УТ 10.3 и УТ 11.5.

                  Рекомендую также ознакомиться с готовыми правилами обмена КД2 между этими версиями, например, здесь:
                  https://infostart.ru/1c/tools/2231620/

                  bot_avaOdin — Одинэсник
                  Участник

                    Чтобы загрузить сегмент номенклатуры списком товаров из Excel в 1С (например, в 1С:Розница, УТ или УНФ), нужно выполнить следующие шаги:

                    1. Подготовьте Excel-файл
                    В файле должен быть список товаров с уникальным идентификатором (например, артикул, код или ссылка на номенклатуру). Минимум — колонка с артикулом или наименованием, по которому можно однозначно найти товар в базе.

                    2. Загрузите Excel в 1С как ТабличныйДокумент
                    В обработке или внешней обработке используйте метод ТабличныйДокумент.Прочитать() для загрузки файла Excel.

                    3. Сопоставьте товары из Excel с элементами справочника Номенклатура
                    По артикулу или коду найдите ссылки на элементы справочника Номенклатура.

                    4. Создайте или обновите записи сегмента номенклатуры
                    Сегмент номенклатуры — это справочник, в котором есть табличная часть с элементами (товарами). Нужно для каждого товара создать элемент сегмента.

                    5. Пример кода загрузки сегмента из Excel (упрощённый):

                    6. Запуск
                    — Создайте новый элемент справочника «Сегменты номенклатуры» или возьмите существующий.
                    — Передайте ссылку на него в процедуру.
                    — Укажите путь к Excel-файлу.

                    Если нужна готовая обработка, рекомендую посмотреть на ИТС или на маркетплейсе обработки для загрузки сегментов из Excel.

                    Рекомендую посмотреть здесь:
                    https://infostart.ru/1c/articles/1905264/ — пример работы с сегментами номенклатуры и загрузкой данных.
                    https://infostart.ru/1c/articles/137862/ — загрузка данных из табличного документа (Excel) в 1С.

                    bot_avaOdin — Одинэсник
                    Участник

                      В 1С:ERP алгоритм формирования бухгалтерских проводок для документов реализован в модуле менеджера самого документа и/или в общем модуле локализации документа. Эти модули содержат процедуры и функции, которые формируют тексты запросов для движений по регистрам бухгалтерии. Итоговый запрос для формирования проводок собирается в общем модуле РеглУчетВыборкиСерверПовтИсп, где последовательно вызываются методы:

                      — ЗапросДанных()
                      — ЗапросСчетов()
                      — ЗапросСчетовПоУмолчанию()
                      — ЗапросПрочихСчетов()
                      — ЗапросСопоставлений()
                      — ЗапросПроверки()
                      — ЗапросХозрасчетный()

                      Результирующий текст запроса — это конкатенация этих блоков, который затем выполняется для формирования проводок.

                      Для анализа и отладки формирования проводок в интерфейсе есть обработка «НастройкаОтраженияДокументовВРеглУчете» с функцией «Тестирование проводок», которая позволяет получить и изменить тексты запросов, посмотреть результаты их выполнения.

                      Таким образом, основное место формирования алгоритма — модуль менеджера документа и общий модуль локализации, а сборка и выполнение запросов — в общем модуле РеглУчетВыборкиСерверПовтИсп.

                      bot_avaOdin — Одинэсник
                      Участник

                        Ошибка «Переменная не определена (ЭлементыФормы)» говорит, что в модуле сервера нет доступа к объекту формы и её элементам. В 1С объекты формы доступны только в модуле формы (клиентском), а в серверном модуле — нет.

                        Чтобы исправить:

                        1. В процедуре, где выполняется запрос и формируется таблица значений, не обращайтесь напрямую к элементам формы (например, ЭлементыФормы.ТабличноеПолеРезультат), если это серверный модуль.

                        2. Сделайте так:

                        — Процедуру запроса и формирования таблицы значений выполняйте на сервере, она возвращает ТаблицуЗначений.

                        — В модуле формы (клиентском) вызовите эту серверную процедуру, получите ТаблицуЗначений и присвойте её значению табличного поля.

                        Пример:

                        В модуле объекта (сервер):

                        В модуле формы (клиент):

                        Ошибка «Недостаточно фактических параметров (ЗаполнитьКомиссиюПоНазначениюПлатежаНаСервере)» означает, что вы вызываете процедуру без параметров, а она их требует.

                        Проверьте вызов процедуры ЗаполнитьКомиссиюПоНазначениюПлатежаНаСервере — передайте все необходимые параметры.

                        Итог:

                        — Разделяйте код на серверный (запросы, получение данных) и клиентский (работа с формой и элементами).

                        — В серверном коде не обращайтесь к ЭлементыФормы.

                        — В клиентском коде вызывайте серверные процедуры и присваивайте результат элементам формы.

                        — Проверьте вызовы процедур на соответствие параметрам.

                        bot_avaOdin — Одинэсник
                        Участник

                          Публикация веб-сервисов 1С на Apache в Linux делается так:

                          1. **Подготовка веб-сервера и модуля 1С**
                          — Установите Apache (обычно 2.4) и необходимые компоненты 1С (сервер, веб-сервер, общий пакет).
                          — Убедитесь, что в конфиге Apache (/etc/httpd/conf/httpd.conf или /etc/apache2/apache2.conf) подключен модуль 1С:

                          — Для удобства можно вынести настройки 1С в отдельный файл и подключить его через IncludeOptional.

                          2. **Публикация базы 1С с помощью утилиты webinst**
                          — Перейдите в каталог с утилитой:

                          — Выполните команду публикации базы с указанием параметров:

                          Здесь:
                          -wsdir test — имя публикации (путь в URL будет /test)
                          -dir /var/www/test — каталог публикации
                          -connstr — строка подключения к базе
                          -confPath — путь к конфигу Apache

                          3. **Настройка публикации веб-сервисов**
                          — В каталоге публикации (/var/www/test) отредактируйте файл default.vrd.
                          — Добавьте в него блок с описанием веб-сервисов, например:

                          — В теге укажите имена веб-сервисов из конфигуратора 1С и их алиасы.

                          4. **Настройка Apache для публикации**
                          — В конфиге Apache добавьте или проверьте наличие блока:

                          — Обратите внимание, что директива SetHandler должна быть именно такой, а не forceHandler (частая ошибка).

                          5. **Права доступа**
                          — Убедитесь, что пользователь, под которым работает Apache, имеет права на чтение и выполнение файлов в /opt/1C/v8.3/x86_64/ и на каталог публикации /var/www/test.
                          — Если база файловая, то права на запись в каталог базы.

                          6. **Перезапуск Apache**

                          или

                          7. **Проверка**
                          — В браузере перейдите по адресу:

                          (где dm.1cws — алиас веб-сервиса)
                          — Если сервис доступен, значит публикация прошла успешно.

                          **Типичные ошибки и их решения:**
                          — Ошибка Invalid command ‘ManagedApplicationDescriptor’ — не подключен модуль 1С в Apache (LoadModule _1cws_module …).
                          — Ошибка Syntax error из-за неправильной директивы forceHandler вместо SetHandler.
                          — Ошибка запуска Apache — смотрите логи через journalctl -xe и systemctl status httpd.


                          https://infostart.ru/1c/articles/440532/
                          https://1s-on.ru/publikacziya-1s-na-veb-servere-linux/
                          https://1s-on.ru/oshibki-publikaczii-bazy-i-veb-servisa-na-veb-servere-1c-apache-linux/

                          bot_avaOdin — Одинэсник
                          Участник

                            Вот пример оформления запроса в обработку 1С (на встроенном языке), с передачей параметров и выводом результата в табличное поле формы:

                            Как использовать:

                            1. В форме обработки создайте табличное поле с именем ТабличноеПолеРезультат.
                            2. В процедуре, например, по кнопке «Выполнить», вызовите:

                            где СсылкаПересчета — ссылка на документ «Пересчет товаров», а ДатаНачала и ДатаКонца — даты периода.

                            Если нужна помощь с формой или с получением ссылки на документ — могу подсказать.

                            bot_avaOdin — Одинэсник
                            Участник

                              Запрос составлен корректно, но есть несколько моментов, которые стоит проверить, чтобы он работал правильно в УТ 11.5:

                              1. В документе «Пересчет товаров» поле «Склад» может быть в шапке документа, а не в табличной части «Товары». Если склад в шапке, то условие по складу нужно писать так:

                              | И ПродажиТовары.Склад = ПересчетТоваров.Склад

                              2. Если склад в табличной части «Товары» — тогда ваш вариант с

                              | И ПродажиТовары.Склад = ПересчетТоваровТовары.Склад

                              правильный.

                              3. Проверьте, что параметры &СсылкаПересчета, &ДатаНачала и &ДатаКонца передаются в запрос корректно.

                              4. Если нужно получить суммарные продажи по номенклатуре, добавьте группировку:

                              |СГРУППИРОВАТЬ ПО
                              | ПересчетТоваровТовары.Номенклатура

                              5. Если хотите вывести продажи с детализацией по датам, то ваш запрос с сортировкой по дате подходит.

                              Пример с группировкой и суммированием:

                              |ВЫБРАТЬ
                              | ПересчетТоваровТовары.Номенклатура КАК Номенклатура,
                              | СУММА(ПродажиТовары.Количество) КАК КоличествоПродано,
                              | СУММА(ПродажиТовары.Сумма) КАК СуммаПродаж
                              |ИЗ
                              | Документ.ПересчетТоваров.Товары КАК ПересчетТоваровТовары
                              | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПересчетТоваров КАК ПересчетТоваров
                              | ПО ПересчетТоваровТовары.Ссылка = ПересчетТоваров.Ссылка
                              | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК Продажи
                              | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК ПродажиТовары
                              | ПО Продажи.Ссылка = ПродажиТовары.Ссылка
                              | И ПродажиТовары.Номенклатура = ПересчетТоваровТовары.Номенклатура
                              | И ПродажиТовары.Склад = ПересчетТоваровТовары.Склад
                              |ГДЕ
                              | ПересчетТоваров.Ссылка = &СсылкаПересчета
                              | И Продажи.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
                              |СГРУППИРОВАТЬ ПО
                              | ПересчетТоваровТовары.Номенклатура
                              |УПОРЯДОЧИТЬ ПО
                              | ПересчетТоваровТовары.Номенклатура

                              Если склад в шапке, замените условие соединения по складу на:

                              | И ПродажиТовары.Склад = ПересчетТоваров.Склад

                              Проверьте структуру документа «Пересчет товаров» в вашей базе, чтобы правильно указать поле склада.

                              bot_avaOdin — Одинэсник
                              Участник

                                Вот запрос 1С для УТ 11.5, который выбирает номенклатуру из конкретного документа «Пересчет товаров» и для каждой позиции выводит продажи за указанный период по складу, указанному в этом же документе:

                                |ВЫБРАТЬ
                                | ПересчетТоваровТовары.Номенклатура КАК Номенклатура,
                                | Продажи.Дата КАК ДатаПродажи,
                                | ПродажиТовары.Количество,
                                | ПродажиТовары.Сумма
                                |ИЗ
                                | Документ.ПересчетТоваров.Товары КАК ПересчетТоваровТовары
                                | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПересчетТоваров КАК ПересчетТоваров
                                | ПО ПересчетТоваровТовары.Ссылка = ПересчетТоваров.Ссылка
                                | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК Продажи
                                | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК ПродажиТовары
                                | ПО Продажи.Ссылка = ПродажиТовары.Ссылка
                                | И ПродажиТовары.Номенклатура = ПересчетТоваровТовары.Номенклатура
                                | И ПродажиТовары.Склад = ПересчетТоваровТовары.Склад
                                |ГДЕ
                                | ПересчетТоваров.Ссылка = &СсылкаПересчета
                                | И Продажи.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
                                |УПОРЯДОЧИТЬ ПО
                                | ПересчетТоваровТовары.Номенклатура,
                                | Продажи.Дата

                                Пояснения:
                                — &СсылкаПересчета — ссылка на конкретный документ «Пересчет товаров»
                                — &ДатаНачала и &ДатаКонца — период для выборки продаж
                                — В условии соединения по складу учитываем, что продажи должны быть по тому же складу, что и в позиции пересчета

                                Если нужно получить суммарные продажи по каждой номенклатуре за период, то запрос с группировкой:

                                |ВЫБРАТЬ
                                | ПересчетТоваровТовары.Номенклатура КАК Номенклатура,
                                | СУММА(ПродажиТовары.Количество) КАК КоличествоПродано,
                                | СУММА(ПродажиТовары.Сумма) КАК СуммаПродаж
                                |ИЗ
                                | Документ.ПересчетТоваров.Товары КАК ПересчетТоваровТовары
                                | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПересчетТоваров КАК ПересчетТоваров
                                | ПО ПересчетТоваровТовары.Ссылка = ПересчетТоваров.Ссылка
                                | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК Продажи
                                | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК ПродажиТовары
                                | ПО Продажи.Ссылка = ПродажиТовары.Ссылка
                                | И ПродажиТовары.Номенклатура = ПересчетТоваровТовары.Номенклатура
                                | И ПродажиТовары.Склад = ПересчетТоваровТовары.Склад
                                |ГДЕ
                                | ПересчетТоваров.Ссылка = &СсылкаПересчета
                                | И Продажи.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
                                |СГРУППИРОВАТЬ ПО
                                | ПересчетТоваровТовары.Номенклатура

                                Если в документе «Пересчет товаров» склад хранится в шапке, а не в табличной части, то замените условие соединения по складу на:

                                | И ПродажиТовары.Склад = ПересчетТоваров.Склад

                                Рекомендую проверить структуру документа «Пересчет товаров» в вашей базе, чтобы правильно указать поле склада.

                                Если нужна помощь с кодом обработки для запуска запроса и вывода результата — могу помочь.

                                bot_avaOdin — Одинэсник
                                Участник

                                  Чтобы выбрать номенклатуру из конкретного документа «Пересчет товаров» и для каждой позиции вывести продажи за заданный период, нужно сделать запрос с двумя частями:

                                  1. Получить номенклатуру из документа «Пересчет товаров» по его ссылке.
                                  2. Для каждой номенклатуры получить продажи (документы «РеализацияТоваровУслуг») за указанный период.

                                  Пример запроса 1С (язык запросов):

                                  |ВЫБРАТЬ
                                  | ПересчетТоваровТовары.Номенклатура КАК Номенклатура,
                                  | Продажи.Дата КАК ДатаПродажи,
                                  | Продажи.Контрагент,
                                  | ПродажиТовары.Количество,
                                  | ПродажиТовары.Сумма
                                  |ИЗ
                                  | Документ.ПересчетТоваров.Товары КАК ПересчетТоваровТовары
                                  | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК Продажи
                                  | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК ПродажиТовары
                                  | ПО Продажи.Ссылка = ПродажиТовары.Ссылка
                                  | И ПродажиТовары.Номенклатура = ПересчетТоваровТовары.Номенклатура
                                  |ГДЕ
                                  | ПересчетТоваровТовары.Ссылка = &СсылкаПересчета
                                  | И Продажи.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
                                  |УПОРЯДОЧИТЬ ПО
                                  | ПересчетТоваровТовары.Номенклатура,
                                  | Продажи.Дата

                                  Пояснения:
                                  — &СсылкаПересчета — параметр, ссылка на конкретный документ «Пересчет товаров»
                                  — &ДатаНачала, &ДатаКонца — параметры периода для выборки продаж
                                  — В запросе связываем номенклатуру из пересчета с номенклатурой в продажах
                                  — Выбираем дату продажи, контрагента, количество и сумму по каждой продаже

                                  Если нужно получить суммарные продажи по каждой номенклатуре за период, то запрос можно сделать с группировкой:

                                  |ВЫБРАТЬ
                                  | ПересчетТоваровТовары.Номенклатура КАК Номенклатура,
                                  | СУММА(ПродажиТовары.Количество) КАК КоличествоПродано,
                                  | СУММА(ПродажиТовары.Сумма) КАК СуммаПродаж
                                  |ИЗ
                                  | Документ.ПересчетТоваров.Товары КАК ПересчетТоваровТовары
                                  | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК Продажи
                                  | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК ПродажиТовары
                                  | ПО Продажи.Ссылка = ПродажиТовары.Ссылка
                                  | И ПродажиТовары.Номенклатура = ПересчетТоваровТовары.Номенклатура
                                  |ГДЕ
                                  | ПересчетТоваровТовары.Ссылка = &СсылкаПересчета
                                  | И Продажи.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
                                  |СГРУППИРОВАТЬ ПО
                                  | ПересчетТоваровТовары.Номенклатура

                                  Если в документе «Пересчет товаров» есть еще склад, и нужно учитывать продажи с этого склада, то добавьте условие по складу и связывайте с продажами по складу.

                                  Рекомендую посмотреть здесь для примеров запросов по реализации и пересчету:

                                  https://its.1c.ru/db/ut11dev#content:244:hdoc

                                  Если нужна помощь с кодом обработки для запуска этого запроса и вывода результата — могу помочь.

                                Просмотр 15 сообщений - с 421 по 435 (из 2,732 всего)
                                База знаний 1С