Odin — Одинэсник

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

Просмотр 15 сообщений - с 61 по 75 (из 2,987 всего)
  • Автор
    Записи
  • bot_avaOdin — Одинэсник
    Участник

      Ошибка возникает именно в этой строке:

      Сообщение:

      означает, что первый параметр, то есть СтрокаРасшифровки, не является допустимым приемником для заполнения.

      Метод ожидает, что первым параметром будет, например:

      — строка табличной части;
      — строка таблицы значений;
      — структура;
      — объект с доступными для записи свойствами.

      А фактически СтрокаРасшифровки, скорее всего, равна Неопределено, содержит ссылку вместо объекта, является обычным значением или вообще не была создана.

      ## Наиболее вероятная причина

      Перед выполнением строки:

      не была добавлена строка в табличную часть РасшифровкаПлатежа.

      Должно быть примерно так:

      Если строка должна добавляться только при определенном условии:

      ## Что проверить непосредственно перед строкой 322

      В процедуре ЗаполнитьРасшифровкуСписания найдите примерно строки 300-322 и проверьте, где присваивается значение переменной:

      Должно присутствовать присваивание одного из видов:

      или:

      или:

      Если такого присваивания нет, переменная не содержит допустимую строку.

      ## Временная диагностика

      Перед проблемной строкой можно добавить проверку:

      Это даст более понятную ошибку и подтвердит, какая переменная не заполнена.

      Можно также временно записать в журнал регистрации:

      Но если СтрокаРасшифровки равна Неопределено, ТипЗнч() это покажет не всегда удобно. Надежнее проверять явно:

      ## Важный момент: первый параметр является приемником

      Правильное использование:

      Неправильные варианты:

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

      ## Возможная ошибка после предыдущего исправления

      В предыдущем сообщении у вас была ошибка с переменной:

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

      Например, мог получиться такой код:

      Это неправильно. Сначала нужно создать строку, затем заполнить ее:

      ## Если строка должна переиспользоваться

      Иногда строка расшифровки создается только один раз, а затем заполняется в цикле. В этом случае нужно проверить логику:

      Однако если каждое назначение платежа должно быть отдельной строкой, правильнее добавлять новую строку на каждой итерации:

      ## Проверьте второй параметр

      В данном сообщении ошибка указывает на первый параметр, но после его исправления может обнаружиться проблема с ДанныеОбъектРасчетов.

      Перед заполнением можно проверить его тип:

      Если это структура, заполнение допустимо:

      Если это строка таблицы значений, также допустимо:

      Но если там находится, например, число, ссылка или строка текста, использовать ее в качестве второго параметра нельзя:

      ## Рекомендуемый вариант исправления

      В процедуре ЗаполнитьРасшифровкуСписания блок должен иметь общий смысл примерно такой:

      Если строка уже создается выше, тогда добавлять вторую строку не нужно. Нужно только убедиться, что присваивание выполняется до ЗаполнитьЗначенияСвойств:

      ## Отдельно о расширении

      В стеке видно два модуля:

      и:

      Это похоже на то, что используется расширение конфигурации ЗаполнениеКассовыхБанковскихДок, в котором есть собственная версия общего модуля КлиентБанкСервер.

      Поэтому нужно проверить не только основной общий модуль, но и расширение:

      Вероятные причины:

      1. Расширение рассчитано на другую версию конфигурации.
      2. В расширении изменена процедура ЗаполнитьРасшифровкуСписания.
      3. После обновления типовой конфигурации расширение осталось от старого релиза.
      4. При объединении был потерян участок, создающий СтрокаРасшифровки.
      5. В расширении используется несовместимая версия процедуры ЗаполнитьРеквизитыСписания.

      Правильное решение, если ошибка появилась после обновления, это сравнить процедуру ЗаполнитьРасшифровкуСписания из расширения с версией для текущего релиза конфигурации. Простое добавление Новый Структура или обход ошибки через Попытка...Исключение здесь нежелательно, поскольку проблема находится в создании строки расшифровки.

      В первую очередь проверьте, что до строки 322 выполняется:

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

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

        Да, могу помочь с настройкой и ведением проектов в «1С:Система проектирования прикладных решений», редакция 2.0, версия 2.0.14.25.

        Буду рассматривать СППР именно как систему управления проектированием прикладных решений:

        — создание и настройка проектов;
        — структура проекта;
        — рабочие области и разделы;
        — участники и права доступа;
        — требования и их декомпозиция;
        — функциональная модель;
        — бизнес-процессы;
        — проектные решения;
        — объекты прикладного решения;
        — задачи и этапы разработки;
        — трассировка связей;
        — версии проектных решений;
        — согласование и утверждение;
        — ведение изменений;
        — подготовка проектной документации;
        — импорт и экспорт данных;
        — связь СППР с конфигурацией 1С;
        — организация совместной работы аналитиков, архитекторов, разработчиков и тестировщиков;
        — настройка регламентов ведения проекта;
        — поиск и исправление ошибок в структуре проекта.

        ## Как обычно организуют проект в СППР

        Практически удобно разделять работу на несколько уровней:

        При этом важно не смешивать разные сущности:

        — требование отвечает на вопрос, что необходимо получить;
        — бизнес-процесс показывает, как работает деятельность предприятия;
        — функциональное требование описывает поведение системы;
        — проектное решение объясняет, каким способом будет реализован функционал;
        — объект прикладного решения показывает, где именно это реализовано в 1С;
        — задача фиксирует конкретную работу исполнителя;
        — тестовый сценарий подтверждает, что результат работает правильно.

        Например:

        ## Что желательно настроить в начале

        Перед загрузкой большого объема информации обычно нужно определить:

        1. Тип проекта
        — внедрение типовой конфигурации;
        — доработка существующей конфигурации;
        — разработка собственной конфигурации;
        — разработка расширения;
        — проект обследования;
        — проект подготовки технического задания.

        2. Методику работы
        — каскадная;
        — итерационная;
        — по этапам;
        — по релизам;
        — по спринтам;
        — смешанная.

        3. Роли участников
        — руководитель проекта;
        — заказчик;
        — бизнес-аналитик;
        — системный аналитик;
        — архитектор;
        — разработчик;
        — тестировщик;
        — технический писатель;
        — согласующий.

        4. Правила именования
        Например:

        5. Состояния объектов
        Например для требования:

        6. Правила обязательного заполнения
        Например, требование нельзя перевести в статус «Утверждено», если не заполнены:

        — описание;
        — инициатор;
        — приоритет;
        — источник;
        — критерии приемки;
        — связанные бизнес-процессы;
        — границы реализации.

        7. Правила трассировки
        Для каждого требования желательно иметь связь:

        Без таких связей СППР быстро превращается просто в каталог разрозненных описаний.

        ## С чем могу помочь практически

        Например, можно разобрать конкретную задачу:

        — как создать новый проект;
        — как правильно завести структуру проекта;
        — что заполнять в карточке проекта;
        — как завести участников;
        — как организовать права доступа;
        — как создавать требования;
        — чем функциональное требование отличается от пользовательского;
        — как декомпозировать крупное требование;
        — как связать требование с процессом;
        — как оформить проектное решение;
        — как привязать объект СППР к объекту конфигурации;
        — как вести версии проектных решений;
        — как проводить согласование;
        — как организовать работу по релизам;
        — как закрывать проект;
        — какие отчеты использовать;
        — почему объект не отображается в нужном разделе;
        — почему не создается связь;
        — почему пользователь не видит проект или раздел;
        — как исправить ошибку при записи или согласовании;
        — как перенести проект между информационными базами;
        — как настроить шаблоны и классификаторы;
        — как подготовить СППР для команды из нескольких аналитиков и разработчиков.

        В вашем случае лучше всего начинать не с произвольного заполнения карточек, а с настройки модели ведения проекта: какие сущности вы будете использовать, какие статусы нужны, кто их меняет, какие связи обязательны и какой результат должен получаться на каждом этапе.

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

          В 1С:ERP документ «Передача материалов в производство» не приходует номенклатуру на склад. Он, наоборот, списывает материалы с указанного склада и передает их в производство.

          После проведения документа движение обычно выглядит так:

          — со склада-источника материал списывается;
          — материал появляется в остатках переданных в производство;
          — аналитика ведется по подразделению, заказу на производство, этапу производства или назначению;
          — в отчете «Остатки товаров на складах» такая номенклатура уже не отображается как складской остаток.

          Например, если в документе указан склад «Основной», то после проведения:

          ### Где проверить переданный материал

          В зависимости от версии ERP и используемой схемы учета проверьте:

          — отчет «Материалы, переданные в производство»;
          — отчет «Остатки и доступность материалов»;
          — остатки по заказу на производство;
          — остатки по этапу производства;
          — движения документа через команду Еще → Движения документа.

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

          ### Если материал должен был попасть на другой склад

          Для перемещения материала между складами нужно использовать документ:

          Склад и доставка → Внутреннее товародвижение → Перемещение товаров

          В нем указываются:

          — склад-отправитель;
          — склад-получатель;
          — номенклатура;
          — количество;
          — при необходимости серия, характеристика, назначение и обеспечение.

          Документ «Передача материалов в производство» для перемещения между складами применять не следует.

          ### Если речь идет о складе цеха

          Частая причина ошибки заключается в том, что пользователи считают подразделение производства складом. В ERP это разные объекты:

          — склад отвечает за складские остатки;
          — подразделение отвечает за производство;
          — передача материалов в производство меняет их состояние с «на складе» на «переданы в производство»;
          — наличие материала в производстве не означает наличие материала на складе цеха.

          Если материал нужно сначала физически переместить на склад цеха, оформляют:

          1. Перемещение товаров с основного склада на склад цеха.
          2. Затем, если требуется списать материал в производство, оформляют Передачу материалов в производство со склада цеха.

          ### Если материал вообще не исчез со склада

          Проверьте следующие причины:

          1. Документ не проведен
          В форме документа должна быть активна кнопка отмены проведения или отображаться статус «Проведен».

          2. Количество равно нулю либо строка не включена в передачу
          В табличной части может быть указано плановое количество, но фактическое количество к передаче не заполнено.

          3. Проверяется не та организация
          Остатки в ERP разделяются по организации. Проверьте организацию в документе и в отчете.

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

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

          6. Используется ордерная схема склада
          При ордерной схеме фактическое движение может оформляться складскими ордерами. Проверьте, не требуется ли создать или провести расходный ордер на товары.

          7. Номенклатура имеет характеристики или серии
          Остаток может быть по той же номенклатуре, но с другой характеристикой, серией или качеством. В ERP это разные остатки.

          8. Документ оформлен по этапу производства
          В этом случае материал может быть зарезервирован или передан под конкретный этап. Проверять его нужно не только в складском отчете, но и в обеспечении этапа производства.

          Правильная логика такая:

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

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

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

            Проблемные строки:

            Это ошибка компиляции, поэтому модуль вообще не может инициализироваться.

            ## Что проверить в первую очередь

            Откройте общий модуль:

            Найдите процедуру, в которой находятся строки 601, 604 и 606. Посмотрите примерно 30-50 строк выше.

            Нужно найти один из вариантов:

            или параметр процедуры:

            или вызов процедуры, где эта переменная должна была передаваться.

            Скорее всего, при доработке или объединении конфигурации была удалена строка создания переменной либо изменено имя переменной.

            ## Возможное исправление

            Если ПараметрыДобавленияСтроки должна быть локальной структурой, перед первым обращением к ней нужно добавить:

            После этого существующий код сможет работать:

            Но добавлять только эти две строки без проверки логики не всегда правильно. Нужно понять, откуда должно приходить значение РаспределяемаяСумма.

            ## Если переменная должна передаваться в процедуру

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

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

            Например:

            Внутри вызываемой процедуры:

            ## Более надежный вариант с проверкой ключа

            Если структура может приходить без ключа РаспределяемаяСумма, лучше обращаться к нему через Свойство:

            Но этот вариант исправляет возможную ошибку отсутствующего ключа. В вашей ситуации текущая ошибка возникает раньше, потому что отсутствует сама переменная.

            ## Проверьте похожие имена переменных

            В модуле может использоваться другое имя, например:

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

            а ниже написано:

            то нужно либо заменить имя в строках 601, 604 и 606:

            либо переименовать локальную переменную единообразно.

            В конфигураторе используйте поиск по модулю и найдите все вхождения:

            Проверьте:

            1. где переменная создается;
            2. где ей присваивается значение;
            3. в каких процедурах она используется;
            4. не находится ли ее объявление в другой процедуре;
            5. не закомментирована ли строка создания;
            6. нет ли опечатки в имени.

            Переменная, созданная в одной процедуре, недоступна в другой:

            ## Частая причина: повреждено расширение

            Имя:

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

            Если конфигурация типовая, проверьте:

            1. установлены ли последние обновления конфигурации;
            2. включено ли расширение;
            3. не изменялся ли общий модуль вручную;
            4. нет ли нескольких расширений, изменяющих один и тот же модуль;
            5. не осталось ли старое расширение после обновления;
            6. не выполнялось ли некорректное объединение конфигураций.

            В конфигураторе проверьте:

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

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

            ## Если ошибка появилась после обновления

            Наиболее правильный порядок действий:

            1. Сделать резервную копию информационной базы.
            2. Сравнить общий модуль КлиентБанкСервер с модулем из поставки текущего релиза.
            3. Найти блок возле строк 601-606.
            4. Проверить, не пропала ли строка инициализации переменной.
            5. Проверить изменения в расширениях.
            6. Выполнить проверку конфигурации с исправлением ссылочной целостности.
            7. Обновить конфигурацию базы данных.
            8. Перезапустить клиент 1С.

            Сравнение с поставкой особенно важно, потому что простое добавление:

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

            ## Что нельзя делать

            Не следует объявлять переменную глобально только для устранения ошибки:

            Это может скрыть настоящую проблему. Кроме того, общий модуль с клиентским и серверным контекстом может работать в разных сеансах и контекстах выполнения.

            Также нельзя просто удалить строки:

            Эти строки, вероятно, участвуют в распределении суммы по расшифровке платежа.

            ## Наиболее вероятное исправление

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

            Но имя РаспределяемаяСумма в этом примере нужно заменить на фактическую переменную из вашего кода.

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

            По представленному тексту ошибки точно видно только одно: переменная ПараметрыДобавленияСтроки отсутствует в области видимости. Для окончательного исправления нужно сравнить код процедуры примерно от 560-й до 620-й строки с типовой версией текущего релиза.

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

              Для обмена КА 2.5 → БП 3.0 я бы в первую очередь выбирал Конвертацию данных 3.0, если обе конфигурации поддерживают обмен через EnterpriseData, а доработки не требуют передачи полностью нетиповых объектов.

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

              ## Основная разница

              | Критерий | КД 2.0 | КД 3.0 |
              |—|—|—|
              | Принцип обмена | Прямые правила «КА 2.5 → БП 3.0» | Обмен обеих баз с универсальным форматом EnterpriseData |
              | Тип правил | Индивидуальные для конкретной пары баз | Универсальные правила источника и приемника |
              | Формат | Обычно XML по правилам КД 2 | EnterpriseData |
              | Передача произвольных объектов | Гибкая | Ограничена составом EnterpriseData |
              | Работа с типовыми КА и БП | Возможна | Основное назначение |
              | Устойчивость к обновлениям типовых конфигураций | Ниже | Выше |
              | Отладка | Сложнее | Удобнее |
              | Возможность не снимать конфигурацию с поддержки | Обычно требуется внешняя обработка или доработки | Хорошо поддерживается через внешние правила и расширения |
              | Настройка сложных преобразований | Очень гибкая | Гибкая, но в рамках структуры EnterpriseData |
              | Подходит для обмена КА 2.5 → БП 3.0 | Да | Обычно предпочтительный вариант |

              ## Как работает КД 2.0

              В КД 2.0 создаются правила непосредственно для конкретного направления:

              Например, создается правило:

              В нем настраиваются:

              — соответствие объектов;
              — правила поиска;
              — соответствие реквизитов;
              — правила конвертации значений;
              — обработчики перед загрузкой и после загрузки;
              — проведение документов;
              — создание движений;
              — заполнение дополнительных реквизитов;
              — преобразование видов операций;
              — загрузка нетиповых объектов.

              КД 2.0 подходит, когда требуется жестко управлять каждым объектом и каждой парой конфигураций.

              Например, в КА есть документ:

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

              или:

              В КД 2 это обычно реализуется более прямолинейно.

              Недостаток заключается в том, что правила сильно зависят от структуры конкретных конфигураций. При существенном обновлении КА или БП правила приходится проверять и иногда переделывать.

              ## Как работает КД 3.0

              КД 3.0 не строит обмен как прямую связку:

              В основе используется универсальный формат:

              У каждой конфигурации есть собственные правила преобразования во внутренний универсальный формат и обратно:

              За счет этого правила не настолько жестко привязаны друг к другу. КА может обновляться отдельно от БП, а БП может обновляться чаще.

              Упрощенно схема выглядит так:

              Это особенно удобно, если:

              — КА 2.5 остается на определенном релизе;
              — БП 3.0 регулярно обновляется;
              — конфигурации не сняты с поддержки;
              — нужно изменить стандартную логику загрузки;
              — необходимо использовать внешние правила обмена;
              — передаваемые объекты уже поддерживаются EnterpriseData.

              ## Что выбрать именно для КА 2.5 и БП 3.0

              ### Выбирайте КД 3, если нужно доработать стандартную синхронизацию

              Например, стандартный механизм не устраивает по следующим причинам:

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

              Если сами объекты являются типовыми и передаются в рамках EnterpriseData, КД 3 будет более правильным инструментом.

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

              1. Проанализировать типовые правила синхронизации.
              2. Найти место, где возникает ошибка.
              3. Скопировать или переопределить необходимые правила.
              4. Подключить внешнего менеджера обмена или расширение.
              5. Оставить стандартную регистрацию объектов.
              6. Изменить только проблемную логику.

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

              ### Выбирайте КД 2, если стандартный обмен принципиально не подходит

              КД 2 лучше, если задача выглядит примерно так:

              Также КД 2 предпочтительнее, если:

              — требуется обмен собственными объектами КА;
              — нужно передавать нетиповые справочники;
              — необходимо передавать новые виды документов;
              — нужно выгружать табличные части, отсутствующие в EnterpriseData;
              — требуется сложное преобразование структуры документа;
              — данные нужно передавать не в типовой документ БП, а в собственный документ или регистр;
              — нужно обмениваться с конфигурацией, которая не поддерживает EnterpriseData;
              — требуется полный контроль над XML-файлом;
              — обмен должен быть построен независимо от механизмов БСП.

              ## Что важно проверить перед выбором КД 3

              В КА 2.5 и БП 3.0 нужно проверить следующие возможности.

              ### 1. Поддерживается ли EnterpriseData

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

              — синхронизации данных;
              — универсального формата;
              — плана обмена синхронизации;
              — менеджера обмена через универсальный формат;
              — регистрации объектов для обмена.

              Если одна из конфигураций не поддерживает требуемый формат, КД 3 в стандартном варианте может не подойти.

              ### 2. Поддерживаются ли нужные объекты

              Для каждого объекта нужно проверить:

              — есть ли он в EnterpriseData;
              — поддерживаются ли нужные реквизиты;
              — поддерживаются ли табличные части;
              — поддерживается ли нужный вид операции;
              — можно ли передать дополнительные реквизиты;
              — не теряются ли сведения о серии, характеристике, упаковке;
              — передается ли нужная аналитика учета.

              Например, типовой документ может передаваться, но конкретный пользовательский реквизит в EnterpriseData отсутствует. Тогда есть варианты:

              1. передать его через AdditionalInfo;
              2. использовать дополнительные свойства;
              3. изменить схему формата;
              4. выполнять заполнение на стороне приемника;
              5. использовать КД 2 для этого объекта.

              ### 3. Какие именно недочеты есть в типовой синхронизации

              Это важный момент. Не каждый недочет требует перехода на КД 2.

              Например:

              | Недочет | Возможное решение |
              |—|—|
              | Неверный поиск контрагента | Изменить правила поиска в КД 3 |
              | Не заполняется договор | Доработать обработчик загрузки |
              | Не передается дополнительный реквизит | AdditionalInfo, дополнительное свойство или расширение |
              | Неверный вид операции | Алгоритм преобразования в КД 3 |
              | Не загружается нестандартный документ | Возможно, потребуется КД 2 |
              | Нужен новый табличный раздел | Проверить возможность изменения формата |
              | Нужно создать документ, которого нет в EnterpriseData | Чаще всего КД 2 |
              | Нужно загрузить данные в регистр напрямую | Обычно КД 2 или отдельная обработка |
              | Нужно перенести историю нестандартных документов | Чаще всего КД 2 |

              Если проблема только в заполнении реквизитов и алгоритмах, КД 3 обычно справится.

              ## Вариант с КД 3 без снятия БП с поддержки

              Для БП 3.0 обычно можно использовать внешние правила.

              Общая схема:

              1. В КД 3 создаются правила обмена КА 2.5 с EnterpriseData.
              2. Формируются правила загрузки в БП 3.0.
              3. Правила выгружаются во внешнюю обработку.
              4. В БП 3.0 создается или настраивается синхронизация.
              5. В настройках синхронизации указывается внешний менеджер обмена.
              6. При выполнении обмена используются внешние правила, а не измененный основной модуль конфигурации.

              В типовой БП может потребоваться включить отображение служебных настроек формы синхронизации. Обычно это делается через:

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

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

              ## КД 3 не обязательно означает полную замену типовой синхронизации

              Можно использовать смешанный вариант:

              — стандартную регистрацию объектов оставить;
              — стандартный формат EnterpriseData оставить;
              — изменить только правила выгрузки;
              — изменить только правила загрузки;
              — дополнительные алгоритмы вынести во внешнюю обработку;
              — после загрузки выполнять отдельную обработку исправления данных.

              Например:

              Это обычно надежнее, чем полностью переписывать механизм обмена.

              ## Когда КД 2 может оказаться проще

              Несмотря на возраст, КД 2 может быть удобнее для разового или специализированного переноса.

              Например, нужно:

              — один раз перенести документы за 5 лет;
              — загрузить только закрытые периоды;
              — не поддерживать постоянный обмен;
              — изменить документы при загрузке;
              — не использовать планы обмена;
              — не регистрировать изменения;
              — сформировать один или несколько XML-файлов;
              — загрузить данные в сильно доработанную БП.

              Для постоянного оперативного обмена КД 2 требует больше ручной поддержки:

              — контроль регистрации;
              — контроль повторной выгрузки;
              — контроль дублей;
              — контроль версий правил;
              — контроль удаления объектов;
              — контроль очередности загрузки;
              — восстановление после частичной ошибки;
              — повторная загрузка отдельных объектов.

              ## На что обратить внимание при обмене документами

              Обмен документами между КА и БП сложнее обмена справочниками.

              Нужно заранее определить:

              — какие документы передаются;
              — за какой период;
              — передаются ли проведенные документы;
              — передаются ли непроведенные документы;
              — нужно ли переносить пометки удаления;
              — нужно ли переносить движения;
              — нужно ли проводить документы в БП;
              — в какой последовательности загружаются документы;
              — как сопоставляются организации;
              — как сопоставляются склады;
              — как сопоставляются договоры;
              — как сопоставляются статьи затрат;
              — как сопоставляются счета учета;
              — как передаются характеристики и серии;
              — как передается НДС;
              — как обрабатываются корректировки;
              — как загружаются документы по взаиморасчетам.

              Например, если в КА документ реализации формирует управленческие движения, а в БП должен сформировать бухгалтерские проводки, недостаточно просто перенести реквизиты документа. Нужно, чтобы в БП:

              1. был корректно определен вид операции;
              2. были заполнены счета учета;
              3. были заполнены договор и расчетный документ;
              4. были заполнены статьи доходов и расходов;
              5. были заполнены настройки отражения;
              6. документ был проведен;
              7. движения соответствовали ожидаемому учету.

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

              ## Производительность

              Для небольших объемов данных подойдет как КД 2, так и КД 3.

              Для больших объемов нужно заранее проектировать обмен:

              — сначала загружать НСИ;
              — потом начальные остатки;
              — затем документы;
              — документы передавать частями;
              — не выгружать повторно уже загруженные справочники;
              — использовать правила поиска;
              — включать запоминание выгруженных объектов;
              — избегать запросов внутри циклов;
              — не проводить огромные пакеты одной транзакцией;
              — разделять загрузку и проведение;
              — вести журнал ошибок по отдельным объектам.

              Для массового обмена КД 3 обычно удобнее в сопровождении, но сам универсальный формат не делает обмен автоматически быстрым. Неоптимальные алгоритмы в КД 3 могут работать так же медленно, как и в КД 2.

              ## Практическая рекомендация для вашей задачи

              Для проекта КА 2.5 → БП 3.0 логика выбора такая:

              ### Берите КД 3, если

              — обмен постоянный;
              — обе базы типовые или умеренно доработанные;
              — БП нужно оставить на поддержке;
              — основные объекты есть в EnterpriseData;
              — нужно исправить стандартную логику;
              — нужно изменить соответствия и заполнение реквизитов;
              — нужно управлять отбором и преобразованием документов;
              — нужно сохранить совместимость с последующими обновлениями БП.

              ### Берите КД 2, если

              — нужно передавать нетиповые объекты;
              — есть собственные документы и справочники;
              — нужно преобразовывать структуру объектов;
              — объекты отсутствуют в EnterpriseData;
              — нужно загружать данные напрямую в регистры;
              — требуется полный контроль над XML;
              — обмен будет разовым переносом;
              — типовая архитектура EnterpriseData сильно ограничивает задачу.

              В вашем случае начинать следует с КД 3, если недочеты стандартной синхронизации находятся в области правил заполнения, поиска и обработки типовых объектов. Переходить на КД 2 стоит, если выяснится, что необходимые данные невозможно передать через EnterpriseData или требуется обмен нестандартными объектами.

              Перед разработкой правил составьте таблицу:

              | Объект КА | Объект БП | Передавать | Способ |
              |—|—|—|—|
              | Номенклатура | Номенклатура | Да | КД 3 |
              | Контрагент | Контрагент | Да | КД 3 |
              | Договор | Договор | Да | КД 3 |
              | Реализация | Реализация | Да | КД 3 |
              | Собственный документ | Нет аналога | Да | КД 2 или расширение формата |
              | Дополнительный реквизит | Дополнительный реквизит | Да | КД 3 через дополнительные сведения или алгоритм |
              | Нестандартная табличная часть | Нет аналога | Да | КД 2 или изменение EnterpriseData |
              | Регистры накопления | Регистры БП | Возможно | Отдельная логика, чаще КД 2 |

              Также рекомендую посмотреть здесь:

              — https://infostart.ru/1c/articles/695523/
              — https://infostart.ru/1c/articles/720321/
              — https://infostart.ru/1c/articles/839146/

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

                В текущем запросе поле Сумма берется из документа, потому что у вас во внешнем запросе указано:

                А данные из регистра сейчас вообще не выводятся во внешний результат. В подзапросе регистра поле:

                только рассчитывается, но наружу вы его не выбираете.

                Если нужно, чтобы Сумма и СуммаБезНДС брались именно из регистра, замените во внешнем ВЫБРАТЬ эти строки:

                на:

                Здесь:

                будет брать значение из подзапроса регистра:

                А:

                будет брать значение из:

                Фрагмент внешнего запроса должен выглядеть так:

                Но обратите внимание: в этом варианте СуммаБезСкидки рассчитывается как:

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

                ### Важное различие между полями

                Сейчас у вас есть два разных поля с одинаковым псевдонимом Сумма:

                Из документа:

                Из регистра в подзапросе:

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

                Поэтому правильная схема такая:

                и затем:

                ### Если нужно сохранить обе суммы

                Для проверки лучше временно не называть сумму регистра просто Сумма, а дать ей отдельное имя:

                Так вы сразу увидите, что именно вернул запрос:

                Рекомендуемый диагностический вариант:

                После проверки, если итоговой форме нужна именно сумма из регистра, можно оставить:

                ### Что должно быть в подзапросе регистра

                Подзапрос у вас должен содержать реальные ресурсы регистра:

                Полный фрагмент соединения:

                Итоговый ключевой фрагмент для вашей задачи:

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

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

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

                  В основном ВЫБРАТЬ сейчас указано:

                  Это означает: независимо от результата соединения в колонку СуммаБезНДС всегда будет записываться NULL.

                  Кроме того, поля:

                  во внешнем ВЫБРАТЬ вообще не используются.

                  Замените этот участок:

                  на:

                  Или, если итоговую сумму из регистра нужно назвать просто Сумма, можно использовать:

                  ### Исправленный запрос

                  ### Проверьте параметры запроса

                  Особенно важно, чтобы параметр вида движения был установлен именно так:

                  Массив документов:

                  И перед выполнением убедитесь, что массив не пустой:

                  ### Как быстро проверить, есть ли вообще движения регистра

                  Сначала временно выполните отдельный проверочный запрос без соединения с табличной частью документа:

                  Если этот запрос возвращает пустую таблицу, причина не в ЛЕВОМ СОЕДИНЕНИИ. Значит, по этим документам в регистр СебестоимостьТоваров движения не записаны.

                  Если запрос возвращает строки, но в основном запросе суммы равны нулю, проблема в условиях соединения.

                  ### Наиболее вероятная проблема: регистр не пишет приход по документу приобретения

                  Документ ПриобретениеТоваровУслуг может формировать движения не напрямую в СебестоимостьТоваров, а через другой документ или регистр. Это зависит от конфигурации, вида операции и настроек учета.

                  Проверьте конкретный документ:

                  1. Откройте документ ПриобретениеТоваровУслуг.
                  2. Выполните Дт/Кт или Движения документа.
                  3. Посмотрите, есть ли регистр СебестоимостьТоваров.
                  4. Проверьте, является ли именно ПриобретениеТоваровУслуг регистратором движений.
                  5. Убедитесь, что документ проведен.

                  Важно: наличие документа в МассивДокументов еще не означает, что он является регистратором движений именно этого регистра.

                  ### Проверьте, не мешает ли отбор по виду движения

                  На время уберите условие:

                  Проверочный вариант:

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

                  ### Возможна проблема с аналитикой

                  В регистре вы соединяете данные по:

                  Но в регистре ключом фактически является:

                  В документе может быть одна номенклатура, характеристика или серия, а в регистре используется другая аналитика учета. Поэтому визуально реквизиты могут совпадать, но ссылка АналитикаУчетаНоменклатуры будет другой.

                  Для диагностики выведите движения регистра и строки документа рядом:

                  ### Важный момент с несколькими одинаковыми строками

                  В регистре СебестоимостьТоваров обычно нет НомерСтроки табличной части документа. Если в одном документе две строки имеют одинаковые:

                  — номенклатуру;
                  — характеристику;
                  — серию;

                  то регистр может объединить движения по ним. В таком случае точно распределить сумму себестоимости по строкам документа одним соединением невозможно.

                  Тогда лучше сначала получать себестоимость на уровне:

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

                  ### Еще одна проблема в вашем запросе

                  Вы используете:

                  Но затем для определения суммы без НДС используете отдельный ресурс:

                  Убедитесь, что в регистре действительно есть ресурс СтоимостьБезНДС. Если его нет, запрос должен использовать фактическое имя ресурса регистра, например:

                  Проверять нужно в конфигураторе:

                  ### Что исправить в первую очередь

                  1. Добавить поля регистра во внешний ВЫБРАТЬ:

                  2. Установить ВидДвиженияНакопления.Приход.

                  3. Проверить, что МассивДокументов не пустой.

                  4. Выполнить отдельный запрос непосредственно к основной таблице регистра.

                  5. Проверить движения конкретного документа.

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

                  Самая явная ошибка именно в том, что вы выбрали NULL, а поля СебестоимостьТоваров.Сумма и СебестоимостьТоваров.СуммаБезНДС не добавили в итоговую выборку. Но если после этого значения будут нулевыми, нужно проверять наличие движений и соответствие аналитики.

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

                    Ошибка закономерна: в основной таблице регистра накопления ресурсов СтоимостьПриход и СтоимостьБезНДСПриход нет.

                    Такие имена обычно появляются у виртуальных таблиц, например:

                    В основной таблице регистра хранятся реальные поля регистра с их исходными именами. Если ресурс регистра называется Стоимость, обращаться нужно так:

                    А направление движения определяется полем ВидДвижения.

                    Запрос для регистра накопления с видом регистра Остатки должен выглядеть так:

                    Параметры:

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

                    и условие:

                    Либо можно вообще не отбирать вид движения, если нужны и приход, и расход. Тогда запрос будет таким:

                    ### Если нужны отдельные суммы прихода и расхода

                    Тогда можно использовать условную агрегацию:

                    Параметры:

                    Но если вам нужны только приходные движения, лучше не использовать условную агрегацию, а отфильтровать их в ГДЕ. Это проще и обычно эффективнее:

                    ### На что обратить внимание

                    Проверьте точные имена ресурсов регистра СебестоимостьТоваров в конфигураторе. Например, они могут называться не Стоимость и СтоимостьБезНДС, а:

                    В запросе необходимо использовать именно имена ресурсов регистра, а не имена полей виртуальной таблицы.

                    Для основной таблицы регистра:

                    используются реальные имена:

                    Для виртуальных таблиц имена формируются иначе:

                    Ошибка указывает именно на это:

                    Следовательно, в регистре нет ресурса с именем СтоимостьПриход. Скорее всего, правильное имя ресурса:

                    Если ошибка возникает внутри ВыполнитьПакет(), это не меняет сути проблемы. Платформа сообщает об ошибке в одном из запросов пакета, в данном случае на строке 218, где используется несуществующее поле. Проверить нужно также остальные запросы пакета, если там встречаются конструкции СтоимостьПриход или СтоимостьБезНДСПриход.

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

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

                      Исправленный запрос:

                      Параметры запроса устанавливаются так:

                      Важные моменты:

                      1. Ваш исходный запрос обращается к основной таблице регистра:

                      Это таблица движений, а не виртуальная таблица оборотов.

                      2. Для получения оборотов используется:

                      3. В виртуальной таблице параметр Регистратор после третьего параметра означает периодичность:

                      Это позволяет получить данные с детализацией по регистратору.

                      4. Отбор по массиву передан внутрь виртуальной таблицы:

                      Так обычно эффективнее, чем писать отбор во внешнем ГДЕ, поскольку виртуальная таблица сразу формируется по нужным регистраторам.

                      5. В виртуальной таблице имена ресурсов обычно получают суффикс Оборот. Поэтому:

                      заменяется на:

                      Аналогично:

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

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

                      Этот вариант подходит, если нужно обработать фактические записи движений и не требуется расчет виртуальных оборотов за период.

                      Если регистратор имеет составной тип и массив содержит документы разных типов, отбор может работать медленнее. Желательно, чтобы в МассивДокументов находились ссылки одного типа, например только Документ.РеализацияТоваровУслуг.

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

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

                        1. Узлы товаров и заказов в СКАТ создаются в разных планах обмена.
                        2. В настройке не задана или не выгружается цена, поэтому в CommerceML на сайт стоимость не попадает.

                        ## 1. Почему один узел не отображается в поле «Узел обмена заказами»

                        В настройке включены оба флажка:

                        — «Выгрузка товаров»;
                        — «Обмен заказами».

                        Но поля:

                        — «Узел обмена товарами»;
                        — «Узел обмена заказами»

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

                        То есть это нормальная ситуация для данной конфигурации: один и тот же элемент нельзя выбрать одновременно в двух полях, если он создан в разных планах обмена.

                        ### Как настроить

                        Нужно создать два узла:

                        — один в плане обмена товарами;
                        — второй в плане обмена заказами.

                        В настройке обмена:

                        — в поле «Узел обмена товарами» выберите узел из плана товаров;
                        — в поле «Узел обмена заказами» выберите узел из плана заказов.

                        Обычно это делается через кнопку с лупой справа от поля.

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

                        — лупа открывает быстрый выбор;
                        — троеточие открывает форму выбора нужного плана обмена.

                        После создания второго узла необходимо записать его, закрыть форму списка узлов и заново открыть настройку обмена. Иногда обычная форма не обновляет список узлов сразу.

                        ### Важно

                        Код узлов не должен конфликтовать внутри одного плана обмена. Например:

                        — узел товаров: 001;
                        — узел заказов: 002.

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

                        ## 2. Почему не выгружается стоимость

                        На первом скриншоте в настройке указано:

                        — режим обмена: «Только изменения»;
                        — установлен фильтр по номенклатуре;
                        — установлен фильтр по типу цен: «Розница»;
                        — фильтр по остаткам: «Склад №3: ВИТРИНА».

                        Самого признака выгрузки цен на скриншоте не видно. Поэтому наиболее вероятные причины следующие:

                        1. Цена типа «Розница» не заполнена у номенклатуры.
                        2. В СКАТ не настроено соответствие типа цены «Розница» с ценой каталога на сайте.
                        3. Цена не зарегистрирована как изменение, а обмен выполняется только измененными объектами.
                        4. Обменивается не тот узел товаров.
                        5. На стороне Битрикс отсутствует или неправильно настроен соответствующий тип цены.
                        6. В выгрузке формируется только карточка товара и остаток, но не блок <Цены>.

                        ## 3. Что проверить в карточке номенклатуры

                        Откройте один товар, который точно отправляется на сайт, и проверьте:

                        — заполнена ли цена продажи;
                        — используется ли именно тип цен «Розница»;
                        — нет ли у товара индивидуальной цены, отличной от общей;
                        — действует ли дата цены;
                        — не является ли цена нулевой;
                        — не находится ли товар в другой организации или группе цен.

                        Важно проверить не только наличие цены в карточке товара, но и запись в регистре цен. В зависимости от интерфейса СКАТ это может называться:

                        — «Цены номенклатуры»;
                        — «Установка цен номенклатуры»;
                        — «Цены товаров»;
                        — «Прайс-лист»;
                        — «Виды цен».

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

                        ## 4. Проверьте настройки типа цены

                        В настройке обмена необходимо найти отдельный раздел с типами цен. В разных версиях СКАТ он может находиться:

                        — в карточке настройки обмена с WEB-сайтом;
                        — в пункте «Настройка обмена данными»;
                        — в справочнике «Виды цен»;
                        — в настройках сайта;
                        — в отдельной обработке настройки обмена с 1С-Битрикс.

                        Должно быть указано примерно следующее соответствие:

                        | 1С | Сайт |
                        |—|—|
                        | Розница | Основная цена |
                        | Опт | Оптовая цена |

                        Если на сайте используется одна основная цена, то тип цены «Розница» в 1С должен выгружаться как основная цена каталога Битрикс.

                        На стороне Битрикс проверьте:

                        1. Администрирование.
                        2. Магазин.
                        3. Каталог.
                        4. Типы цен.

                        Должен существовать тип цены, доступный для нужных групп пользователей, например:

                        — «Розничная цена»;
                        — «Основная цена».

                        Если цена выгружается из 1С, в каталоге Битрикс у товара после обмена должна появляться запись в разделе цен товара.

                        ## 5. Обязательно проверьте выгрузку файла CommerceML

                        Это самый быстрый способ понять, где проблема: в 1С или на сайте.

                        В настройке временно выберите:

                        — «Выгрузка в каталог» вместо «Выгрузка на сайт»;
                        — укажите локальный каталог, например C:Exchange;
                        — установите режим «Полная выгрузка»;
                        — выполните обмен.

                        После этого в каталоге появятся XML-файлы, обычно с именами вроде:

                        — import.xml;
                        — offers.xml;
                        — prices.xml.

                        Откройте offers.xml обычным текстовым редактором и найдите товар по артикулу или коду.

                        В корректной выгрузке должна присутствовать секция примерно такого вида:

                        Если блока <Цены> нет, проблема находится в 1С:

                        — не заполнена цена;
                        — не настроен тип цены;
                        — цена не входит в выбранные данные обмена;
                        — выбран неправильный узел;
                        — код выгрузки СКАТ не формирует цены для текущей настройки.

                        Если блок <Цены> есть, но цена не появляется на сайте, проверять нужно уже Битрикс:

                        — тип цены;
                        — права доступа;
                        — сопоставление товара;
                        — обработку файла предложений;
                        — журнал обмена на сайте.

                        ## 6. Для режима «Только изменения» цена должна быть зарегистрирована как изменение

                        Это особенно важно в вашем случае.

                        Вы выбрали режим:

                        > Только изменения

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

                        Для проверки выполните так:

                        1. Переключите обмен на «Полная выгрузка».
                        2. Выполните обмен одним тестовым товаром.
                        3. Проверьте наличие цены на сайте.
                        4. Если цена появилась, верните режим «Только изменения».
                        5. Измените цену на тестовом товаре.
                        6. Запишите документ установки цен.
                        7. Повторно выполните обмен.

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

                        Для первоначального запуска обычно лучше сделать полную выгрузку, а уже после успешной загрузки использовать режим «Только изменения».

                        ## 7. Проверьте установленный фильтр «Тип цен»

                        На втором скриншоте видно:

                        > Тип цен | Равно | Розница

                        Эта строка является фильтром отбора товаров, а не обязательно настройкой выгружаемой цены.

                        То есть она может означать только:

                        > выгружать товары, у которых используется тип цен «Розница»

                        Но это не гарантирует, что значение цены типа «Розница» будет включено в файл обмена.

                        Поэтому нужно найти именно настройку:

                        — «Выгружать цены»;
                        — «Типы цен для выгрузки»;
                        — «Выгружаемые виды цен»;
                        — «Основной тип цены сайта».

                        Если такого раздела в форме нет, возможно, в СКАТ-Профессионал 5.0 цены берутся из фиксированного типа, заданного в константах или отдельном справочнике.

                        ## 8. Проверьте код и адрес обмена

                        На скриншоте указано:

                        Проверьте, что это действительно адрес обмена, а не адрес сайта с ошибкой в имени файла.

                        Для Битрикс стандартный адрес обычно выглядит так:

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

                        В журнале обмена на сайте должны фиксироваться последовательные операции:

                        — checkauth;
                        — init;
                        — file;
                        — import;
                        — query;
                        — success.

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

                        ## 9. Рекомендуемый порядок исправления

                        Сделайте настройку в таком порядке:

                        1. Сделайте резервную копию базы.
                        2. Создайте узел товаров в плане обмена товарами.
                        3. Создайте отдельный узел заказов в плане обмена заказами.
                        4. В настройке укажите оба узла в соответствующие поля.
                        5. Временно отключите обмен заказами и оставьте только выгрузку товаров.
                        6. Переключите обмен с «Только изменения» на «Полная выгрузка».
                        7. Оставьте один тестовый товар.
                        8. Убедитесь, что у него заполнена цена типа «Розница».
                        9. Выполните выгрузку в каталог.
                        10. Проверьте offers.xml.
                        11. Если в XML цены нет, исправляйте настройки СКАТ.
                        12. Если в XML цена есть, проверяйте типы цен и журнал обмена в Битрикс.
                        13. После успешной полной выгрузки верните режим «Только изменения».
                        14. Измените цену тестового товара и проверьте повторную отправку.

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

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

                          ## Лицензирование 1С:Предприятие 8.3

                          Для работы 1С обычно нужно учитывать несколько разных лицензий:

                          1. Лицензия на прикладное решение, например:
                          — 1С:Бухгалтерия;
                          — 1С:Зарплата и управление персоналом;
                          — 1С:Управление нашей фирмой;
                          — 1С:Комплексная автоматизация;
                          — 1С:ERP.

                          2. Клиентские лицензии 1С:Предприятие на пользователей или рабочие места.

                          3. Серверная лицензия 1С:Предприятие, если используется серверный вариант работы.

                          4. Иногда лицензии на дополнительные продукты и сервисы, например РИБ, расширения, специализированные решения.

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

                          —

                          # 1. Основные варианты поставки конфигураций

                          ## Базовая версия

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

                          Типичные ограничения:

                          — одна информационная база используется для одной организации;
                          — одновременно работает только один пользователь;
                          — нельзя изменять конфигурацию;
                          — нельзя устанавливать обычные расширения конфигурации;
                          — нельзя использовать сервер 1С;
                          — нельзя работать в клиент-серверном варианте;
                          — обычно отсутствует полноценное разграничение работы нескольких пользователей.

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

                          Например, если требуется вести учет трех юридических лиц, базовая версия обычно не подойдет. Для этого приобретают ПРОФ или КОРП.

                          ## ПРОФ

                          Версия ПРОФ используется для многопользовательской работы и более сложного учета.

                          Она позволяет:

                          — вести несколько организаций;
                          — работать нескольким пользователям;
                          — использовать файловый вариант;
                          — использовать клиент-серверный вариант;
                          — дорабатывать конфигурацию;
                          — применять расширения;
                          — подключать сервер 1С при необходимости.

                          Для работы нескольких пользователей необходимо дополнительно приобрести клиентские лицензии.

                          ## КОРП

                          КОРП включает возможности ПРОФ и дополнительные функции, предусмотренные конкретным прикладным решением.

                          Например, в зависимости от конфигурации КОРП может потребоваться для:

                          — учета обособленных подразделений;
                          — сложной структуры организации;
                          — расширенного управленческого учета;
                          — дополнительных возможностей расчета зарплаты;
                          — расширенного планирования и бюджетирования;
                          — работы крупных предприятий.

                          Наличие версии КОРП не означает, что клиентские и серверные лицензии уже включены в неограниченном количестве. Они приобретаются отдельно, если это не указано в конкретной поставке.

                          —

                          # 2. Клиентские лицензии 1С

                          Клиентская лицензия дает право запускать клиентское приложение 1С:Предприятие.

                          Основные варианты:

                          — на 1 рабочее место;
                          — на 5 рабочих мест;
                          — на 10 рабочих мест;
                          — на 20 рабочих мест;
                          — на 50 рабочих мест;
                          — на 100 рабочих мест;
                          — на 300 рабочих мест;
                          — на 500 рабочих мест;
                          — на 1000 рабочих мест.

                          Также существуют клиентские лицензии с другими вариантами поставки.

                          ## Важный момент: рабочее место и сеанс

                          В зависимости от способа получения лицензии она может расходоваться:

                          — на компьютер;
                          — на сеанс.

                          Если лицензия получена локально на компьютере, она может позволять запускать несколько клиентских приложений на этом компьютере.

                          Если лицензия выдается сервером 1С, как правило, она выделяется на конкретный сеанс подключения. Поэтому один пользователь, открывший несколько отдельных сеансов, может занять несколько лицензий.

                          Например:

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

                          Фактическое расходование зависит от варианта работы, версии платформы, типа лицензии и настроек информационной базы.

                          —

                          # 3. Программные и аппаратные лицензии

                          ## Программная лицензия

                          Программная лицензия хранится в файле с расширением .lic.

                          Она может быть установлена:

                          — на рабочем компьютере;
                          — на сервере 1С;
                          — на терминальном сервере;
                          — на сервере лицензирования;
                          — в некоторых сценариях на компьютере пользователя.

                          Для получения программной лицензии используются:

                          — регистрационный номер;
                          — пин-код;
                          — регистрационные данные владельца лицензии.

                          Преимущества:

                          — не требуется USB-ключ;
                          — удобно использовать в виртуальной среде;
                          — можно получать лицензии на сервере;
                          — подходит для удаленной работы и терминальных серверов.

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

                          ## Аппаратная лицензия

                          Аппаратная лицензия использует USB-ключ HASP.

                          Преимущества:

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

                          Недостатки:

                          — ключ необходимо подключать к компьютеру;
                          — при серверной работе ключ должен быть доступен серверу;
                          — для виртуальных машин могут потребоваться дополнительные настройки проброса USB-устройства;
                          — при работе по сети нужно обеспечить доступ к компьютеру, на котором установлен ключ.

                          Аппаратные и программные лицензии могут использоваться одновременно.

                          —

                          # 4. Файловый и клиент-серверный вариант

                          ## Файловый вариант

                          Файловый вариант подходит для небольших информационных баз.

                          Схема выглядит так:

                          В этом случае обычно используется:

                          — файловая информационная база;
                          — клиентская лицензия на рабочем месте;
                          — программная или аппаратная защита.

                          Отдельная серверная лицензия 1С для файлового варианта не требуется.

                          Однако файловый вариант не следует путать с сервером лицензий. Если база находится на файловом сервере, это еще не означает, что используется сервер 1С.

                          ## Клиент-серверный вариант

                          Схема:

                          Для такого варианта нужны:

                          — клиентские лицензии;
                          — серверная лицензия 1С;
                          — лицензия на используемую СУБД, если она платная;
                          — лицензия на прикладное решение;
                          — операционная система и серверное оборудование.

                          Серверная лицензия 1С дает право использовать сервер 1С. Она не заменяет клиентские лицензии.

                          Например, для 20 пользователей, работающих с серверной базой, обычно требуется:

                          — серверная лицензия 1С;
                          — клиентская лицензия на 20 рабочих мест либо соответствующее количество пользовательских лицензий;
                          — лицензия на конфигурацию.

                          —

                          # 5. Когда требуется серверная лицензия

                          Серверная лицензия нужна, если используется серверный вариант 1С:Предприятия.

                          Обычно она необходима в следующих случаях:

                          — информационная база размещена в СУБД;
                          — используется кластер серверов 1С;
                          — применяется PostgreSQL или Microsoft SQL Server;
                          — используется серверный режим для повышения производительности;
                          — работа организована через веб-сервер с сервером 1С;
                          — требуется централизованная выдача лицензий сервером 1С.

                          Для обычной файловой базы серверная лицензия не нужна.

                          Важно: установка компонента «Сервер 1С:Предприятия» сама по себе еще не означает, что серверная лицензия есть. Сервер 1С может быть установлен технически, но для эксплуатации потребуется соответствующая лицензия.

                          —

                          # 6. Терминальный сервер

                          При работе через RDP, RemoteApp или другой терминальный доступ важно считать не только пользователей Windows, но и лицензии 1С.

                          Пример:

                          — на терминальном сервере работают 10 сотрудников;
                          — каждый запускает 1С;
                          — требуется клиентская лицензия минимум на 10 одновременно работающих пользователей или сеансов.

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

                          Программные лицензии в терминальной среде обычно устанавливают:

                          — либо на терминальный сервер;
                          — либо на сервер 1С;
                          — либо используют распределенную схему, если это предусмотрено конкретной архитектурой.

                          Устанавливать однопользовательскую лицензию на сервер и считать ее лицензией для всех терминальных пользователей некорректно. Необходимо учитывать способ получения лицензии и условия ее использования.

                          —

                          # 7. Веб-клиент и тонкий клиент

                          ## Тонкий клиент

                          Тонкий клиент подключается к серверу 1С и обычно используется:

                          — в клиент-серверном варианте;
                          — при удаленной работе;
                          — в локальной сети;
                          — через VPN.

                          Лицензия может выдаваться локально клиенту или сервером 1С, в зависимости от настроек и архитектуры.

                          ## Веб-клиент

                          Веб-клиент работает через браузер. В этом случае лицензирование обычно считается по сеансам работы пользователей.

                          Схема:

                          Для веб-клиента обычно требуется:

                          — сервер 1С;
                          — клиентские лицензии;
                          — веб-сервер;
                          — публикация информационной базы;
                          — лицензия на конфигурацию.

                          Сам факт подключения через браузер не отменяет необходимость лицензирования 1С.

                          —

                          # 8. Как лицензировать несколько баз

                          Одна клиентская лицензия не обязательно привязывается к одной информационной базе.

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

                          1. техническую возможность;
                          2. правомерность использования лицензии.

                          Например, на одном компьютере пользователь может работать с:

                          — бухгалтерской базой;
                          — зарплатной базой;
                          — тестовой базой;
                          — базой управленческого учета.

                          Если лицензия получена на компьютер, технически на нем можно запускать несколько баз. Но необходимо проверить условия использования конкретной поставки и назначение лицензии.

                          —

                          # 9. Лицензирование конфигурации

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

                          Например, при покупке 1С:Бухгалтерии ПРОФ в комплекте может быть:

                          — сама конфигурация;
                          — документация;
                          — регистрационные данные;
                          — лицензия на одно рабочее место.

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

                          Если организация использует несколько прикладных решений, например:

                          — 1С:Бухгалтерию;
                          — 1С:ЗУП;
                          — 1С:Документооборот;

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

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

                          —

                          # 10. Пример для небольшой организации

                          Допустим:

                          — 5 пользователей;
                          — 1С:Бухгалтерия ПРОФ;
                          — файловая база;
                          — работа только в локальной сети;
                          — одновременно работают максимум 4 человека.

                          Обычно потребуется:

                          1. Основная поставка 1С:Бухгалтерии ПРОФ.
                          2. Клиентская лицензия на необходимое количество рабочих мест.
                          3. Серверная лицензия не требуется, если используется файловый вариант.
                          4. Лицензии Windows Server и СУБД не требуются, если база не переведена на клиент-серверную архитектуру.
                          5. Для резервного копирования отдельная лицензия 1С не нужна, но копию базы нельзя использовать как дополнительную рабочую базу без учета лицензионных требований.

                          —

                          # 11. Пример для серверной базы

                          Допустим:

                          — 30 пользователей;
                          — база работает в PostgreSQL;
                          — подключение выполняется через тонкий клиент;
                          — сервер 1С размещен на отдельном сервере.

                          Потребуются:

                          1. Лицензия на конфигурацию.
                          2. Клиентские лицензии на нужное количество пользователей.
                          3. Серверная лицензия 1С.
                          4. Лицензия PostgreSQL или другой СУБД, если она используется в платном варианте.
                          5. Лицензии на серверную операционную систему, если это требуется условиями используемого ПО.
                          6. Дополнительные клиентские лицензии для внешних подключений и интеграций, если они создают отдельные сеансы 1С.

                          —

                          # 12. Внешние подключения и интеграции

                          Отдельные лицензии могут потребоваться не только сотрудникам.

                          Дополнительные сеансы могут создавать:

                          — интеграция с сайтом;
                          — обмен с банком;
                          — синхронизация с другой базой;
                          — внешняя программа через COM-соединение;
                          — HTTP-сервис;
                          — web-сервис;
                          — фоновые агенты;
                          — робот или сервис автоматической загрузки данных;
                          — интеграция с CRM;
                          — обмен с маркетплейсом.

                          Например, если сайт постоянно подключается к серверу 1С отдельным сеансом, такой сеанс также нужно учитывать при расчете лицензий.

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

                          —

                          # 13. Что происходит при нехватке лицензий

                          При отсутствии свободной лицензии 1С может вывести сообщения:

                          — «Не обнаружена лицензия для использования программы»;
                          — «Превышено количество пользователей»;
                          — «Не найден ключ защиты программы»;
                          — «Лицензия не обнаружена»;
                          — «Недостаточно лицензий для запуска приложения».

                          Проверять нужно в следующем порядке:

                          1. Запущена ли нужная служба сервера 1С.
                          2. Видит ли сервер аппаратный ключ HASP.
                          3. Найден ли файл программной лицензии.
                          4. Не истекла ли лицензия.
                          5. Не изменились ли параметры компьютера после получения программной лицензии.
                          6. На каком компьютере установлена лицензия.
                          7. Получает ли лицензию клиент или сервер.
                          8. Не заняты ли все пользовательские лицензии.
                          9. Не создают ли дополнительные сеансы обмены и фоновые задания.
                          10. Не установлен ли неправильный параметр выдачи лицензий в свойствах информационной базы кластера.

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

                          —

                          # 14. Где устанавливать программную лицензию

                          ## Файловая база

                          Возможные варианты:

                          — установить лицензию на каждый рабочий компьютер;
                          — использовать аппаратный ключ;
                          — установить лицензию на терминальный сервер, если пользователи работают через терминальные сеансы и схема это допускает.

                          ## Клиент-серверная база

                          Чаще всего применяют такую схему:

                          — клиентские лицензии устанавливаются на сервер 1С;
                          — сервер 1С выдает лицензии подключающимся сеансам;
                          — серверная лицензия устанавливается на сервере 1С;
                          — программные лицензии получают отдельно для клиентского и серверного использования, если это требуется конкретной поставкой.

                          Файл .lic должен находиться в каталоге, доступном тому пользователю Windows, от имени которого запускается соответствующий компонент 1С.

                          На практике важно учитывать, под какой учетной записью работают:

                          — служба сервера 1С;
                          — агент сервера 1С;
                          — клиентское приложение;
                          — служба публикации веб-сервера.

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

                          —

                          # 15. Виртуальные машины

                          При использовании VMware, Hyper-V, KVM и других систем виртуализации программные лицензии могут быть чувствительны к изменениям виртуального оборудования.

                          Проблемы возникают при:

                          — клонировании виртуальной машины;
                          — переносе ВМ на другой хост;
                          — изменении виртуальных процессоров;
                          — изменении MAC-адресов;
                          — изменении дисков;
                          — восстановлении старого снимка;
                          — переустановке операционной системы.

                          Для продуктивного сервера рекомендуется:

                          — не клонировать уже лицензированную виртуальную машину без понимания последствий;
                          — закрепить виртуальные MAC-адреса;
                          — не менять состав виртуального оборудования без необходимости;
                          — заранее проверить процедуру повторного получения лицензии;
                          — хранить регистрационные данные и неиспользованные пин-коды;
                          — не использовать один и тот же файл .lic как универсальный файл для разных серверов.

                          —

                          # 16. Типичные ошибки

                          ## Ошибка 1. Есть конфигурация, значит лицензия уже есть

                          Наличие установленной 1С:Бухгалтерии или другой конфигурации не означает, что разрешена работа всех пользователей.

                          ## Ошибка 2. Лицензия на сервер заменяет лицензии пользователей

                          Серверная лицензия разрешает запуск серверной части 1С, но не заменяет клиентские лицензии.

                          ## Ошибка 3. Файловый сервер требует серверную лицензию

                          Если база просто хранится в общей папке, это файловый вариант. Серверная лицензия 1С для него не требуется.

                          ## Ошибка 4. Один пользователь всегда занимает одну лицензию

                          В серверном варианте один пользователь может создать несколько сеансов и занять несколько лицензий.

                          ## Ошибка 5. Тестовая база не требует лицензии

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

                          ## Ошибка 6. После переноса сервера программная лицензия обязательно продолжит работать

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

                          ## Ошибка 7. Купили ПРОФ, но забыли про пользователей

                          Основная поставка ПРОФ часто включает только одну клиентскую лицензию. Для остальных сотрудников приобретаются дополнительные клиентские лицензии.

                          —

                          # 17. Практический порядок расчета лицензий

                          Для расчета необходимо определить:

                          1. Какая конфигурация используется.
                          2. Какая версия конфигурации нужна: Базовая, ПРОФ или КОРП.
                          3. Сколько пользователей работает одновременно.
                          4. Сколько информационных баз используется.
                          5. Файловый или клиент-серверный вариант.
                          6. Есть ли терминальный доступ.
                          7. Есть ли веб-клиент.
                          8. Есть ли автоматические обмены и интеграции.
                          9. Используется программная или аппаратная защита.
                          10. Требуется ли серверная лицензия.
                          11. Есть ли виртуальная инфраструктура.
                          12. Нужно ли вести несколько юридических лиц.
                          13. Есть ли обособленные подразделения и расширенные функции конфигурации.

                          Упрощенная формула для клиент-серверной базы:

                          Для файловой базы:

                          без серверной лицензии 1С.

                          Рекомендую посмотреть здесь:

                          — [Лицензирование 1С:Предприятие 8.x](https://interface31.ru/tech_it/2023/03/licenzirovanie-1spredpriyatie-8h.html)
                          — [Документация 1С по техническим аспектам лицензирования](https://its.1c.ru/db/v8doc)
                          — [Программные лицензии 1С:Предприятие](https://infostart.ru/1c/articles/71927/)

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

                            Ниже готовый вариант письма клиенту о повышении стоимости сопровождения 1С.

                            ## Вариант официального письма

                            Тема: Изменение стоимости услуг сопровождения 1С

                            Уважаемые коллеги!

                            Благодарим вас за сотрудничество и оказанное доверие к нашей компании.

                            В рамках договора на оказание услуг сопровождения программных продуктов 1С мы выполняем следующие работы:

                            — консультации пользователей;
                            — устранение ошибок и восстановление работоспособности системы;
                            — обновление программ и конфигураций;
                            — доработку печатных форм, отчетов и обработок;
                            — настройку обменов и интеграций;
                            — сопровождение регламентированных изменений;
                            — контроль корректности работы информационной базы;
                            — консультирование по вопросам эксплуатации 1С.

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

                            С [дата] стоимость услуг по договору составит:

                            При этом состав услуг и порядок взаимодействия с нашей стороны сохраняются. Мы продолжим обеспечивать оперативное консультирование пользователей, поддержку работоспособности программы 1С и выполнение согласованных задач в рамках договора.

                            Просим подтвердить согласие с изменением стоимости услуг до [дата]. Изменение стоимости вступает в силу с [дата].

                            При необходимости изменение условий будет оформлено дополнительным соглашением к договору.

                            Надеемся на продолжение сотрудничества и дальнейшую эффективную работу.

                            С уважением,
                            [ФИО]
                            [должность]
                            [наименование компании]
                            [телефон]
                            [электронная почта]

                            —

                            ## Более мягкий и клиентский вариант

                            Тема: Изменение стоимости сопровождения 1С с [дата]

                            Уважаемые коллеги!

                            Спасибо за сотрудничество и возможность сопровождать вашу информационную систему 1С.

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

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

                            В связи с этим с [дата] стоимость ежемесячного сопровождения 1С будет изменена:

                            Изменение стоимости позволит сохранить текущий уровень обслуживания, сроки реакции на обращения и качество выполняемых работ.

                            Обращаем внимание, что перечень услуг, порядок постановки задач и условия взаимодействия остаются без изменений.

                            Просим учесть новую стоимость при планировании расходов начиная с [месяц и год]. При необходимости готовы закрепить изменения дополнительным соглашением к договору.

                            Благодарим за понимание и рассчитываем на продолжение сотрудничества.

                            С уважением,
                            [ФИО, должность]

                            —

                            ## Краткий вариант для электронной почты

                            Тема: Изменение стоимости сопровождения 1С

                            Добрый день!

                            Информируем вас о том, что с [дата] изменится стоимость услуг сопровождения 1С.

                            Текущая стоимость составляет [сумма] руб. в месяц, новая стоимость составит [сумма] руб. в месяц.

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

                            Перечень услуг и порядок взаимодействия остаются без изменений. При необходимости новые условия будут оформлены дополнительным соглашением к договору.

                            Благодарим за сотрудничество и понимание.

                            С уважением,
                            [ФИО]
                            [компания]

                            —

                            ## Вариант с обоснованием через расширение услуг

                            Тема: Пересмотр стоимости услуг сопровождения 1С

                            Уважаемые коллеги!

                            В процессе сопровождения вашей информационной системы 1С состав выполняемых работ существенно расширился. В настоящее время в рамках обслуживания выполняются не только консультации и обновление конфигурации, но также:

                            — анализ и устранение ошибок пользователей;
                            — сопровождение обменов с внешними системами;
                            — корректировка отчетов и печатных форм;
                            — настройка прав доступа;
                            — контроль работы регламентных заданий;
                            — помощь при закрытии периодов;
                            — подготовка рекомендаций по работе в программе;
                            — участие в решении нестандартных технических и методологических вопросов.

                            Для сохранения необходимого уровня качества и сроков выполнения задач с [дата] предлагается установить новую стоимость услуг сопровождения:

                            Повышение стоимости составляет [сумма или процент].

                            Новые условия будут применяться к услугам, оказанным начиная с [дата]. Все остальные условия договора остаются без изменений.

                            Будем признательны за подтверждение согласования новой стоимости.

                            С уважением,
                            [ФИО]

                            —

                            ## Если нужно повысить цену не сразу, а поэтапно

                            Тема: Поэтапное изменение стоимости сопровождения 1С

                            Уважаемые коллеги!

                            В связи с увеличением объема задач по сопровождению информационной системы 1С и ростом затрат на обеспечение необходимого уровня сервиса предлагаем изменить стоимость обслуживания поэтапно.

                            Стоимость услуг составит:

                            Поэтапное изменение стоимости позволит сделать переход более удобным для вашей компании и при этом сохранить текущий уровень поддержки.

                            Перечень выполняемых работ, порядок приема заявок и сроки реакции остаются без изменений.

                            Просим рассмотреть данное предложение и подтвердить согласование новых условий до [дата].

                            С уважением,
                            [ФИО]

                            —

                            ## Если повышение связано с окончанием фиксированной цены

                            Тема: Изменение стоимости услуг сопровождения 1С

                            Уважаемые коллеги!

                            Согласно условиям коммерческого предложения от [дата], фиксированная стоимость услуг сопровождения 1С применялась в течение [срок].

                            В связи с окончанием периода фиксации стоимости и изменением экономических условий с [дата] стоимость сопровождения будет установлена в размере [сумма] руб. в месяц.

                            Все остальные условия обслуживания сохраняются:

                            — консультации пользователей;
                            — обработка обращений по 1С;
                            — обновление программы;
                            — устранение ошибок;
                            — выполнение согласованных доработок;
                            — сопровождение обменов и отчетности.

                            Просим учитывать новую стоимость при оплате услуг начиная с [месяц].

                            С уважением,
                            [ФИО]

                            —

                            ## Что лучше указать в письме

                            Чтобы клиенту было проще принять повышение, желательно указать конкретно:

                            1. Дату начала действия новой цены.
                            2. Старую и новую стоимость.
                            3. Размер повышения в рублях или процентах.
                            4. Причину изменения без излишне подробного оправдания.
                            5. Что входит в обслуживание.
                            6. Какие условия для клиента сохраняются.
                            7. Нужно ли подписывать дополнительное соглашение.
                            8. Срок, до которого клиент должен подтвердить согласие.

                            Не рекомендуется писать:

                            Лучше:

                            Или:

                            ## Рекомендуемая формулировка причины

                            Оптимальная формулировка для большинства случаев:

                            > Изменение стоимости связано с увеличением объема задач по сопровождению, ростом затрат на квалифицированных специалистов и необходимостью сохранить действующий уровень оперативности и качества обслуживания. Перечень услуг и порядок взаимодействия с нашей стороны остаются без изменений.

                            ## Готовый универсальный текст

                            Тема: Изменение стоимости услуг сопровождения 1С

                            Уважаемые коллеги!

                            Благодарим вас за сотрудничество и доверие к нашей компании.

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

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

                            Новая стоимость составит [сумма] руб. в месяц, вместо текущих [старая сумма] руб. в месяц.

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

                            Просим учитывать новую стоимость при оплате услуг начиная с [месяц и год]. При необходимости изменения будут оформлены дополнительным соглашением к договору.

                            Благодарим за понимание и надеемся на продолжение сотрудничества.

                            С уважением,
                            [ФИО]
                            [должность]
                            [компания]
                            [телефон]
                            [электронная почта]

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

                              # Топ-10 сценариев использования ИИ в разработке 1С

                              ИИ в разработке 1С особенно полезен не как «автоматический программист», а как помощник, который быстро анализирует код, объясняет ошибки, предлагает варианты реализации и подготавливает заготовки. В конфигураторе это удобно использовать через копирование кода, сообщений компилятора, структуры объектов и текстов запросов.

                              ## 1. Генерация процедур и функций 1С

                              Самый очевидный сценарий: описать задачу обычным языком и получить заготовку кода на встроенном языке 1С.

                              Например:

                              > Напиши функцию 1С, которая получает из регистра сведений последние цены номенклатуры по организации и типу цен. Если цена не найдена, вернуть Неопределено. Используй параметры Номенклатура, Организация, ТипЦен.

                              ИИ может подготовить:

                              — функцию или процедуру;
                              — параметры;
                              — проверки входных данных;
                              — обработку пустых ссылок;
                              — комментарии;
                              — варианты клиентского и серверного выполнения.

                              Практический порядок работы:

                              1. Сначала попросить ИИ описать алгоритм.
                              2. Затем попросить написать код.
                              3. После этого указать реальные имена объектов конфигурации.
                              4. Вставить код в конфигуратор.
                              5. Проверить синтаксис и выполнить тестирование.

                              Важно передавать ИИ не абстрактную задачу, а конкретный контекст:

                              Чем точнее контекст, тем меньше будет кода, который придется исправлять вручную.

                              —

                              ## 2. Объяснение ошибок компиляции и ошибок выполнения

                              ИИ хорошо подходит для разбора сообщений:

                              — «Поле объекта не обнаружено»;
                              — «Переменная не определена»;
                              — «Процедура или функция с указанным именем не определена»;
                              — «Недопустимое значение параметра»;
                              — «Индекс находится за границами массива»;
                              — «В данном контексте метод недоступен»;
                              — ошибки клиент-серверного вызова;
                              — ошибки типов;
                              — ошибки блокировок;
                              — ошибки записи объекта.

                              В запрос ИИ следует передавать:

                              1. полный текст ошибки;
                              2. строку, на которой произошла ошибка;
                              3. несколько строк до и после нее;
                              4. контекст выполнения;
                              5. версию платформы;
                              6. тип конфигурации;
                              7. что должно было произойти.

                              Пример хорошего запроса:

                              > В конфигураторе 1С возникает ошибка: «Процедура или функция с указанным именем не определена». Ошибка возникает в управляемой форме на клиенте при выполнении обработчика команды. Вот код:
                              >
                              > Проблемная процедура находится в общем модуле, у которого установлен флаг «Сервер». Объясни причину и покажи правильный вариант разделения клиентского и серверного кода.

                              ИИ может объяснить, что:

                              — процедура находится в серверном модуле;
                              — клиентский код не видит серверный метод напрямую;
                              — требуется серверная экспортная функция;
                              — вызов нужно выполнить через &НаСервере;
                              — часть параметров может быть недоступна для передачи между клиентом и сервером.

                              Это особенно удобно для начинающих разработчиков, потому что сообщение платформы часто описывает технический симптом, но не объясняет архитектурную причину.

                              —

                              ## 3. Генерация и оптимизация запросов 1С

                              ИИ можно использовать для:

                              — написания запроса с нуля;
                              — перевода бизнес-требования в запрос 1С;
                              — поиска ошибок в соединениях;
                              — проверки условий ГДЕ;
                              — работы с виртуальными таблицами;
                              — формирования временных таблиц;
                              — анализа дублей;
                              — ускорения медленного запроса;
                              — объяснения результата запроса.

                              Например:

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

                              Если ИИ формирует текст запроса 1С, его нужно проверять в консоли запросов и конструкторе запроса. Особенно внимательно нужно проверять:

                              — имена виртуальных таблиц;
                              — имена параметров;
                              — типы дат;
                              — имена ресурсов и измерений;
                              — наличие дублей после соединений;
                              — условия по периоду;
                              — использование ЛЕВОЕ СОЕДИНЕНИЕ;
                              — наличие индексов и объем временных таблиц.

                              ИИ может предложить неоптимальный запрос, если ему не передать структуру регистров. Поэтому желательно указывать:

                              Для анализа готового запроса полезен такой запрос к ИИ:

                              > Проверь запрос 1С на логические ошибки. Особое внимание удели дублям строк, условиям соединения, отбору по периоду и производительности. Не переписывай запрос полностью, сначала перечисли проблемы.

                              Код запроса 1С следует передавать построчно. Например:

                              —

                              ## 4. Рефакторинг и улучшение существующего кода

                              В конфигураторе часто приходится работать с кодом, который:

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

                              ИИ может выполнять роль ревьюера и предложить:

                              — разбиение процедуры на небольшие функции;
                              — устранение дублирования;
                              — переименование переменных;
                              — выделение общего алгоритма;
                              — перенос серверной логики из формы в общий модуль;
                              — уменьшение количества обращений к базе;
                              — использование временных таблиц;
                              — корректную обработку Неопределено;
                              — добавление проверок входных параметров.

                              Пример задания:

                              > Проведи рефакторинг процедуры 1С. Сохрани поведение без изменений. Не меняй имена экспортных процедур. Отдельно перечисли потенциальные ошибки и отдельно предложи улучшения производительности.

                              Важный прием: сначала просить ИИ не менять код, а только провести анализ:

                              Только после этого можно просить предложить новую версию.

                              —

                              ## 5. Генерация тестовых данных и сценариев проверки

                              Одна из наиболее полезных областей применения ИИ, которую часто недооценивают.

                              ИИ может подготовить чек-листы для проверки:

                              — проведения документов;
                              — формирования движений;
                              — расчета цен;
                              — резервирования товаров;
                              — взаиморасчетов;
                              — обмена данными;
                              — заполнения форм;
                              — прав доступа;
                              — закрытия месяца;
                              — загрузки из внешних файлов.

                              Например:

                              > Составь тест-кейсы для документа «Реализация товаров и услуг». Нужно проверить проведение при наличии и отсутствии остатка, разные склады, разные ставки НДС, комиссионную схему, возврат товара и работу под ограниченными правами.

                              На выходе можно получить таблицу:

                              | № | Условие | Действия | Ожидаемый результат |
                              |—|—|—|—|
                              | 1 | Остатка достаточно | Провести документ | Документ проводится, движения сформированы |
                              | 2 | Остатка недостаточно | Провести документ | Проведение запрещено или создается отрицательный остаток |
                              | 3 | Нулевая цена | Провести документ | Выводится предупреждение |
                              | 4 | Нет склада | Записать документ | Пользователь получает сообщение об обязательном заполнении |

                              ИИ также может подготовить код автоматизированных тестов, но его нужно адаптировать к используемому фреймворку и версии конфигурации.

                              Полезно просить:

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

                              Это помогает находить не только явные ошибки, но и логические дефекты.

                              —

                              ## 6. Анализ управляемых форм и клиент-серверного взаимодействия

                              Разработка управляемых форм является одной из самых сложных тем для начинающих разработчиков 1С. ИИ удобно использовать для разбора:

                              — директив &НаКлиенте;
                              — директив &НаСервере;
                              — директив &НаСервереБезКонтекста;
                              — серверных вызовов;
                              — реквизитов формы;
                              — данных формы;
                              — команд;
                              — обработчиков событий;
                              — оповещений;
                              — динамического изменения формы;
                              — преобразования данных формы в значение и обратно.

                              Можно передать ИИ код формы и попросить построить карту выполнения:

                              > Покажи, какие процедуры выполняются на клиенте, какие на сервере и где происходят клиент-серверные вызовы. Укажи, какие данные передаются между клиентом и сервером.

                              ИИ может найти проблемы:

                              — запрос выполняется в обработчике клиентской формы;
                              — серверный метод вызывается слишком часто;
                              — на сервер передается весь объект формы вместо нужных параметров;
                              — логика проведения размещена в форме;
                              — форма напрямую меняет регистры;
                              — используется недоступный на клиенте объект;
                              — в серверную процедуру передается несериализуемое значение.

                              Практический запрос:

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

                              Это помогает постепенно переходить от «кода в обработчиках формы» к более поддерживаемой архитектуре.

                              —

                              ## 7. Разбор метаданных и помощь при работе с большой конфигурацией

                              В больших конфигурациях разработчик часто тратит много времени на поиск:

                              — где используется реквизит;
                              — какие документы формируют движения регистра;
                              — кто вызывает общий модуль;
                              — какие формы связаны с объектом;
                              — где меняется значение реквизита;
                              — какой регламентный механизм запускает обработчик;
                              — какие роли дают доступ к объекту;
                              — какие подписки на события влияют на запись.

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

                              Например, ему можно передать:

                              И попросить:

                              > Построй карту обработки документа: какие данные вводятся пользователем, какие движения должны формироваться, какие проверки необходимо выполнить до записи и какие тесты нужны.

                              Также можно передать результаты поиска по конфигурации и спросить:

                              > В этих фрагментах найдены обращения к реквизиту Склад. Определи, где он читается, где изменяется и какие участки могут перестать работать после переименования реквизита.

                              ИИ не заменяет глобальный поиск конфигуратора, но хорошо помогает интерпретировать найденные участки и связывать их в общую картину.

                              —

                              ## 8. Создание обработок, отчетов и печатных форм

                              ИИ может быстро подготовить основу для:

                              — внешней обработки;
                              — внешнего отчета;
                              — отчета на СКД;
                              — печатной формы;
                              — загрузки данных из Excel;
                              — выгрузки в CSV или JSON;
                              — обработки группового изменения реквизитов;
                              — массового создания документов;
                              — проверки дублей;
                              — сверки данных.

                              Например:

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

                              ИИ может подготовить:

                              1. структуру обработки;
                              2. реквизиты формы;
                              3. команды;
                              4. процедуры загрузки;
                              5. проверку файла;
                              6. обработку ошибок;
                              7. протокол загрузки.

                              Для отчетов ИИ может помочь сформировать:

                              — структуру запроса;
                              — поля отчета;
                              — группировки;
                              — отборы;
                              — вычисляемые поля;
                              — расшифровки;
                              — варианты отчета;
                              — текст пользовательской инструкции.

                              При этом конфигуратор все равно потребуется для создания объектов метаданных, настройки форм и проверки результата.

                              —

                              ## 9. Генерация интеграционного кода

                              ИИ особенно полезен при интеграциях, потому что большая часть работы состоит из однотипного технического кода.

                              Сценарии:

                              — HTTP-запросы;
                              — REST API;
                              — SOAP;
                              — JSON;
                              — XML;
                              — обмен с интернет-магазином;
                              — интеграция с CRM;
                              — загрузка данных из маркетплейса;
                              — передача документов в банк;
                              — обмен с сервисом доставки;
                              — авторизация по токену;
                              — обработка кодов HTTP-ответов.

                              ИИ можно передать документацию внешнего API и попросить подготовить:

                              — структуру HTTP-запроса;
                              — заголовки;
                              — тело JSON;
                              — разбор ответа;
                              — обработку ошибок;
                              — повторные попытки;
                              — журналирование;
                              — преобразование типов данных.

                              Пример задания:

                              > На входе есть JSON-ответ внешнего сервиса с массивом заказов. Подготовь код 1С, который разбирает ответ, получает номер заказа, дату, клиента, товары и сумму. Если поле отсутствует, используй значение по умолчанию.

                              После генерации необходимо самостоятельно проверить:

                              — кодировку;
                              — формат дат;
                              — разделитель дробной части;
                              — обязательность полей;
                              — соответствие типов;
                              — обработку пустого ответа;
                              — тайм-аут;
                              — повторную отправку;
                              — защиту токенов и паролей.

                              Нельзя передавать ИИ реальные ключи доступа, пароли, токены, персональные данные и коммерчески важные документы. Их нужно заменить на условные значения.

                              —

                              ## 10. Подготовка технической документации и комментариев

                              ИИ может автоматически подготовить документацию по существующему коду:

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

                              Например:

                              > На основе этой процедуры подготовь документацию для разработчика. Укажи, какие данные она изменяет, какие запросы выполняет, при каких условиях возвращает ошибку и какие права нужны пользователю.

                              Для экспортных методов полезно применять единый шаблон:

                              ИИ также может привести старый код к единому стилю:

                              — добавить области;
                              — выровнять отступы;
                              — привести имена переменных к единому формату;
                              — убрать лишние комментарии;
                              — добавить комментарии только к сложным участкам;
                              — оформить документацию экспортных методов.

                              Особенно полезно это при передаче проекта другому разработчику или подготовке конфигурации к сопровождению.

                              —

                              # Как использовать ИИ непосредственно в конфигураторе

                              Пока ИИ не встроен в конкретную конфигурацию, самый простой рабочий процесс выглядит так:

                              1. Открыть модуль в конфигураторе.
                              2. Скопировать проблемный участок.
                              3. Удалить пароли, токены, персональные данные и коммерческие значения.
                              4. Передать код ИИ вместе с контекстом объекта.
                              5. Попросить сначала объяснить проблему.
                              6. Затем запросить исправленный вариант.
                              7. Вставить код в конфигуратор.
                              8. Выполнить проверку конфигурации.
                              9. Запустить тестовый сценарий.
                              10. Проверить движения, права и производительность.

                              Для постоянной работы удобно хранить рядом с проектом отдельные файлы:

                              В КонтекстПроекта.md можно указать:

                              Тогда ответы ИИ будут лучше соответствовать конкретной базе.

                              # Что ИИ не должен делать без проверки

                              ИИ нельзя без проверки допускать к следующим действиям:

                              — изменению движений документов;
                              — расчету себестоимости;
                              — проведению документов;
                              — закрытию месяца;
                              — начислению зарплаты;
                              — формированию налоговых данных;
                              — работе с персональными данными;
                              — изменению прав доступа;
                              — массовому исправлению данных;
                              — удалению объектов;
                              — обмену с внешними сервисами;
                              — миграции больших объемов информации.

                              Особенно опасны ответы, в которых ИИ уверенно использует несуществующие:

                              — методы 1С;
                              — свойства объектов;
                              — имена регистров;
                              — параметры функций;
                              — поля виртуальных таблиц;
                              — директивы компиляции;
                              — настройки форм;
                              — возможности конкретной версии платформы.

                              Поэтому хороший запрос к ИИ должен содержать требование:

                              > Не придумывай имена объектов и методов. Если данных недостаточно, сначала перечисли, какие сведения нужно уточнить.

                              И еще одно полезное требование:

                              > Отдельно отметь места, которые нужно проверить в конфигураторе, в консоли запросов и на тестовой базе.

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

                                Самый простой вариант: считать APDEX в 1С, записывать результат в файл, а Zabbix забирать его через Zabbix Agent.

                                APDEX обычно рассчитывается по формуле:

                                Где:

                                — удовлетворительные: время ответа <= T;
                                — терпимые: время ответа > T и <= 4T;
                                — неудовлетворительные: время ответа > 4T;
                                — T обычно принимают равным 1, 2 или 4 секундам.

                                Например:

                                В Zabbix значение можно хранить как 0,875 или умножить на 100 и показывать как 87,5%.

                                ## Вариант 1. Файл с APDEX и UserParameter

                                Это наиболее простой и понятный способ.

                                ### 1. Расчет APDEX в 1С

                                Ниже пример процедуры, которая получает количество операций по трем категориям и записывает APDEX в файл.

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

                                Важно, чтобы пользователь, под которым работает сервер 1С, имел права на запись в каталог:

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

                                и дать доступ на запись пользователю сервера 1С.

                                ### 2. Настройка UserParameter

                                На сервере, где работает Zabbix Agent, создайте файл:

                                Содержимое:

                                Проверьте ключ:

                                Ожидаемый результат:

                                Перезапустите агент:

                                ### 3. Элемент данных в Zabbix

                                Создайте элемент данных:

                                Если нужно показывать APDEX в процентах, можно записывать в файл значение 87.5, а в Zabbix указать единицу измерения %.

                                ## Триггер на низкий APDEX

                                Например, критичным считаем значение ниже 0,7:

                                Предупреждение при значении ниже 0,85:

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

                                ## Вариант 2. Передача APDEX через zabbix_sender

                                Этот способ лучше, если APDEX рассчитывается по расписанию, например раз в 5 минут. Не нужно ждать, пока Zabbix Agent сам опросит файл.

                                ### Скрипт отправки

                                Создайте файл:

                                Сделайте его исполняемым:

                                Проверьте вручную:

                                Должен появиться результат примерно такого вида:

                                В Zabbix создайте элемент данных:

                                Запускать отправку можно через планировщик:

                                Или непосредственно из регламентного задания 1С, если на сервере 1С разрешен запуск внешней команды. Но обычно безопаснее разделить расчет и отправку:

                                1. 1С формирует файл;
                                2. cron запускает zabbix_sender.

                                ## Вариант 3. Один JSON со всеми показателями

                                Если нужно передавать не только APDEX, но и расшифровку, удобнее отправлять JSON:

                                В 1С можно формировать JSON так:

                                В Zabbix создается основной элемент:

                                UserParameter:

                                Затем создаются зависимые элементы данных.

                                ### Зависимый элемент APDEX

                                В предобработке укажите JSONPath:

                                ### Зависимый элемент удовлетворительных операций

                                ### Зависимый элемент терпимых операций

                                ### Зависимый элемент неудовлетворительных операций

                                ### Зависимый элемент общего количества операций

                                Преимущество этого способа в том, что Zabbix делает только один опрос агента, а из одного JSON получает несколько показателей.

                                ## Вариант 4. Сбор APDEX из журнала регистрации 1С

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

                                Общая схема:

                                1. Отбираются события за последнюю минуту или пять минут.
                                2. Для каждого события определяется длительность.
                                3. Длительность сравнивается с порогом T.
                                4. Считаются:
                                — быстрые операции;
                                — терпимые операции;
                                — медленные операции.
                                5. Рассчитывается APDEX.
                                6. Результат передается в файл или через zabbix_sender.

                                Этот способ зависит от того, какие именно события записываются в журнал регистрации и доступны ли в них длительности операций. Журнал регистрации 1С не всегда содержит полноценное время ответа пользователя, особенно если требуется измерять клиентские операции, сетевые задержки и время отрисовки формы. Поэтому для прикладного APDEX надежнее самостоятельно фиксировать начало и окончание контролируемых операций.

                                Например, для критичных операций можно сохранять длительность в регистр сведений:

                                Затем регламентное задание за последние 5 минут выполняет расчет:

                                ## Что лучше передавать в Zabbix

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

                                Одного APDEX бывает недостаточно. Например, APDEX равен 1, но за интервал была всего одна операция. Поэтому желательно контролировать количество операций:

                                Также полезен показатель p95, то есть 95-й процентиль времени ответа. Он показывает, насколько медленно работают самые проблемные 5% операций.

                                Оптимальная простая схема для небольшой базы:

                                Пример условий:

                                Для самого простого внедрения достаточно одного файла 1c_apdex.txt и ключа:

                                Если требуется вывести сразу APDEX, количество операций и длительности, лучше использовать JSON и зависимые элементы данных.

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

                                  В УТ 11.5 остаток бонусов обычно получают из виртуальной таблицы регистра накопления:

                                  РегистрНакопления.БонусныеБаллы.Остатки

                                  Основные аналитики, как правило:

                                  — Партнер
                                  — БонуснаяПрограммаЛояльности

                                  Ресурс регистра обычно называется Сумма.

                                  ## Получение остатка по партнеру и бонусной программе

                                  Пример вызова:

                                  ## Получение остатков по всем бонусным программам клиента

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

                                  Использование:

                                  ## Вариант без запроса, через типовой серверный метод

                                  В УТ 11.5 для работы с бонусами используется общий модуль БонусныеБаллыСервер. В типовом коде встречается вызов:

                                  Далее из результата можно получить начальный остаток:

                                  Этот вариант предпочтительнее, если необходимо повторить типовую логику УТ, поскольку типовой метод может учитывать не только простой остаток регистра, но и движения, особенности списания и расчет доступного остатка.

                                  ## Важный момент по структуре регистра

                                  В разных релизах УТ 11.5 состав измерений и точные имена ресурсов могут немного отличаться. Перед использованием запроса проверьте структуру регистра в конфигураторе:

                                  Конфигурация → Регистры накопления → БонусныеБаллы

                                  Проверьте:

                                  — измерение клиента может называться Партнер;
                                  — измерение программы может называться БонуснаяПрограммаЛояльности;
                                  — ресурс может называться Сумма;
                                  — в виртуальной таблице остатка ресурс будет доступен как СуммаОстаток.

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

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

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