Odin — Одинэсник

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

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

      Димон, привет!

      Твоя задача — выполнить запрос по множеству значений (Организация, Контрагент, Договор) из программной таблицы значений, чтобы не делать запрос к регистру по каждой строке отдельно, а сразу одним запросом с фильтром по всем нужным наборам. Для этого в 1С используется передача таблицы значений как параметра запроса и объединение с ней в запросе.

      Разберу подробно, как это сделать в консоли запросов и в коде:

      ### Шаг 1. Создание программной таблицы значений с нужными полями

      В коде (например, в обработчике кнопки) создаешь ТаблицуЗначений с колонками:

      ### Шаг 2. Формирование запроса с использованием таблицы значений как параметра

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

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

      ### Шаг 3. Установка параметров и выполнение запроса в коде

      ### Шаг 4. Обработка результата

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

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

      — Таблица значений передается в запрос как параметр &ТаблицаФильтра.
      — В запросе создается псевдоним для этой таблицы (например, ВТФильтр).
      — Соединение с регистром происходит по всем трем полям.
      — В условии ГДЕ можно добавить дополнительные фильтры.
      — Если нужно получить сумму долга по организации, можно добавить группировку по организации и суммировать поле СуммаБухОстаток.

      ### Пример с группировкой по организации (если нужна сумма по организации):

      ### Итог

      — Создаешь таблицу значений с нужными наборами Организация+Контрагент+Договор.
      — Передаешь ее в запрос как параметр.
      — В запросе соединяешься с регистром по этим полям.
      — Запрос выполняется один раз, без повторных обращений.
      — Получаешь нужные суммы по организациям.

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

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

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

      Дополнение по конфигурации (по индексу конфигурации 1С):

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

      В контексте модуля «УчетВзаиморасчетовОтложенноеПроведение» из конфигурации «СКАТ — Профессионал 5.0» есть подход, который используется для оптимизации запросов с множеством параметров.

      Основные шаги для решения вашей задачи:

      1. **Создание программной таблицы значений с нужными полями**
      Вы создаете таблицу значений с колонками: Организация, Договор, Контрагент. В эту таблицу помещаете все необходимые комбинации.

      2. **Использование временной таблицы в запросе**
      Вместо того, чтобы для каждой строки делать отдельный запрос, вы помещаете вашу таблицу значений во временную таблицу в запросе (через конструкцию ПОМЕСТИТЬ или ВТ_…).

      3. **Объединение с регистром остатков по ключам**
      В запросе делаете соединение (например, внутреннее или левое) между вашей временной таблицей и регистром остатков по полям Организация, ДоговорКонтрагента, Контрагент.

      4. **Агрегация по организации**
      В запросе группируете данные по Организации и суммируете поле СуммаБухОстаток.

      5. **Передача параметров в запрос**
      Параметры, такие как дата, сумма, вид договора, передаются один раз в запрос.

      Примерный алгоритм в коде (упрощенно):

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

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

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

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

        (R) В 1С:Бухгалтерия для сельского хозяйства ставка НДС 22% не предусмотрена стандартно, так как в России официальные ставки НДС — 0%, 10%, 20% (с 2019 года 20%, ранее 18%). Если вам нужно вручную добавить ставку НДС 22%, например, для специфических целей или учета, то стандартными средствами конфигурации это не сделать напрямую через интерфейс, потребуется доработка конфигурации.

        Как это сделать:

        1. Открыть конфигуратор 1С (если у вас есть доступ к конфигуратору и права разработчика).

        2. Найти справочник или перечисление, где хранятся ставки НДС. В типовых конфигурациях это обычно перечисление «СтавкиНДС» или справочник «Ставки НДС».

        3. Добавить новый элемент с названием «22%» и значением 22 (или 22/122, если используется дробное значение для расчета).

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

        5. Если в конфигурации есть функции или процедуры, которые жестко прописывают список ставок НДС (например, в модулях обработки цен или налогов), их нужно будет отредактировать, добавив обработку ставки 22%.

        6. После внесения изменений выполнить обновление конфигурации и протестировать работу с новой ставкой НДС.

        Если у вас нет доступа к конфигуратору или вы не хотите менять конфигурацию, то в пользовательском режиме добавить ставку 22% нельзя, так как ставки НДС жестко регламентированы и встроены в конфигурацию.

        Рекомендация: если ставка 22% нужна для учета, который не соответствует официальным ставкам НДС, лучше использовать отдельный вид налога или дополнительный реквизит для фиксации этой ставки, чтобы не нарушать логику налогового учета.
        https://infostart.ru/articles/959858/ — про добавление ставки НДС 20%, аналогично можно добавить 22% с доработкой

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

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

          В 1С:УНФ (Управление нашей фирмой) подарочные сертификаты — это часть функционала лояльности, который в типовом решении реализован через сервер лояльности. Сервер лояльности — это отдельный компонент, который обеспечивает централизованное хранение и обработку данных по программам лояльности, в том числе по подарочным сертификатам, бонусам и т.п.

          Если у вас есть распределённые информационные базы (РИБ) магазинов и главная база, и вы хотите, чтобы сертификаты, проданные в главной базе, были доступны и принимались в магазинах (РИБ), то:

          — **Если вы используете стандартный механизм лояльности 1С:УНФ с сервером лояльности, то сервер лояльности обязателен.** Он обеспечивает синхронизацию и актуальность данных по сертификатам между всеми базами.

          — **Если сервер лояльности не используется, то типовой механизм обмена данными между РИБ не гарантирует корректную работу с сертификатами.** Сертификаты могут не синхронизироваться, что приведёт к ошибкам при их приёме в магазинах.

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

          **Итог:** Для корректной работы с подарочными сертификатами в распределённой структуре 1С:УНФ необходимо развернуть сервер лояльности. Он будет централизованно управлять сертификатами и обеспечит их корректное использование во всех магазинах.

          Рекомендую посмотреть официальную документацию и рекомендации по работе с программами лояльности в 1С:УНФ, а также статьи на Infostart по серверу лояльности в УНФ.
          https://infostart.ru/1c/articles/63332/ (лицензирование и особенности распределённых баз)
          https://infostart.ru/1c/articles/102175/ (опыт работы с распределёнными базами и обменом)

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

            В 1С при работе с расширениями и общими модулями с директивой «Вместо» есть важные нюансы по разделению клиентской и серверной части.

            Если у вас общий модуль в расширении с директивой «Вместо» и свойством «Клиент», то все процедуры и функции этого модуля работают только на клиенте. Атрибут &НаСервере в таком модуле не даст эффекта, потому что серверная часть модуля с таким свойством просто не создается.

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

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

            2. В клиентском общем модуле (с директивой «Вместо» и свойством «Клиент») вызвать серверную функцию через вызов из серверного модуля, например:

            где Расширение.СерверныйМодуль — это имя серверного общего модуля в расширении.

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

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

            Итого, разделяйте логику: клиентский общий модуль с директивой «Вместо» — только клиентский код, серверный общий модуль — серверный код. Вызов серверных функций из клиентского модуля делайте через вызов серверного общего модуля.

            Пример:

            В расширении:

            — Общий модуль «КлиентМодуль» (свойство Клиент, директива Вместо):

            — Общий модуль «СерверныйМодуль» (свойство Сервер):

            Такой подход гарантирует, что серверный код будет доступен и вызов будет работать.

            https://infostart.ru/public/1043459/ (пример разделения клиент-сервер в расширениях)

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

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

              на

              Потому что функция Лев() возвращает указанное количество символов с начала строки, а Сред() позволяет явно указать начальную позицию и длину подстроки, что более универсально и корректно в данном контексте.

              Пример функции с этой заменой:

              Такой код корректно вернёт путь каталога без имени файла.

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

                Екатерина, в 1С:Управление торговлей (УТ) при розничных продажах физическим лицам с НДС счет-фактура на выручку не формируется, так как согласно законодательству при розничной продаже физическим лицам счет-фактура не требуется. Вместо этого используется приходный кассовый ордер (ПКО), который является основанием для включения операции в книгу продаж по НДС.

                Как это реализовано в УТ:

                1. При розничной продаже физическому лицу оформляется документ «Реализация товаров и услуг» с видом операции «Розничная продажа».
                2. В проводках по НДС формируются три записи:
                — Дебет счета кассы (например, 50) и кредит счета 90.01.1 «Выручка по деятельности с основной системой налогообложения» на сумму выручки без НДС.
                — Дебет счета 90.02.1 «Себестоимость продаж» и кредит счета 41.12 «Товары в розничной торговле» на сумму себестоимости.
                — Дебет счета 90.03 «НДС» и кредит счета 68.02 «Расчеты по НДС» на сумму НДС.
                3. Вместо счета-фактуры используется приходный кассовый ордер, который служит основанием для включения операции в книгу продаж по НДС.
                4. В книге продаж отражается сумма реализации без НДС, а сумма НДС учитывается отдельно.

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

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

                  Евгений▪️, причина накопления записей в регистрах при каждой итерации выполнения регламентного задания на предварительное закрытие месяца в документе «Распределение расходов на себестоимость» обычно связана с тем, что обработка не очищает или не удаляет предыдущие записи перед созданием новых. Это может происходить по нескольким причинам:

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

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

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

                  4. Использование документа «Распределение расходов» как накопительного, без механизма удаления старых данных.

                  Для решения проблемы необходимо:

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

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

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

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

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

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

                    Ermuk, привет!

                    Для корректной выгрузки отчёта о розничных продажах с подарочными сертификатами из 1С:УНФ в 1С:Бухгалтерию (БП) нужно доработать правила обмена. В типовых правилах обмена обычно отсутствует полноценная обработка сертификатов, а также могут возникать ошибки при выгрузке табличной части «Товары» из-за вызова алгоритма заполнения ставки НДС.

                    Основные шаги:

                    — Проверьте и при необходимости настройте правила обмена, чтобы они учитывали табличные части и реквизиты, связанные с подарочными сертификатами.
                    — В правилах обмена для табличной части «Товары» удалите или закомментируйте вызов алгоритма заполнения ставки НДС, который может вызывать ошибку «Не установлен приемник XML».
                    — Добавьте обработку табличной части сертификатов, чтобы данные корректно передавались в БП.
                    — В БП обеспечьте наличие соответствующих справочников и документов для приёма данных по сертификатам.
                    — Проведите тестирование обмена и при необходимости доработайте правила.

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

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

                    Подробности и примеры:

                    1. В модуле правил обмена для табличной части «Товары» в выгрузке есть вызов алгоритма заполнения ставки НДС:

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

                    3. Для обработки подарочных сертификатов добавьте в правила обмена соответствующую табличную часть:

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

                      Лилия, привет!

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

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

                      2. **Электронная подпись (ЭЦП) через мобильное приложение**
                      Для подписания документов на iPad обычно используется простая электронная подпись (ПЭП) или усиленная квалифицированная подпись (УКЭП) через интеграцию с облачными сервисами или мобильными токенами. Варианты:
                      — Подключение к облачному сервису ЭЦП, который поддерживает мобильные устройства (например, КриптоПро CSP Cloud, Диадок, СБИС и др.).
                      — Использование мобильных сертификатов, хранящихся в защищённом хранилище iPad (например, через Secure Enclave).
                      — Встроенные механизмы 1С для простой электронной подписи (ПЭП), когда подпись формируется внутри приложения без внешних устройств.

                      3. **Интеграция с внешними сервисами подписания**
                      Если в вашей компании используется сторонний сервис ЭДО (электронного документооборота), который поддерживает мобильное подписание, то 1С:Документооборот можно настроить на интеграцию с этим сервисом. Тогда пользователь на iPad сможет подписывать документы через интерфейс мобильного приложения, а подпись будет храниться в системе.

                      4. **Подписание с помощью графического планшета или стилуса**
                      На iPad можно реализовать подпись с помощью стилуса (Apple Pencil) или пальцем прямо в приложении 1С, если в конфигурации предусмотрена такая возможность. Для этого:
                      — В форме документа добавляется элемент для рисования подписи (например, элемент «Поле для подписи»).
                      — Подпись сохраняется как изображение и прикрепляется к документу.
                      — Такой способ подходит для простой электронной подписи, но не заменяет квалифицированную ЭЦП.

                      5. **Настройка и доработка конфигурации 1С**
                      Для полноценной работы с подписями на iPad может потребоваться доработка конфигурации:
                      — Добавить обработчики для загрузки и сохранения подписей из мобильного приложения.
                      — Реализовать обмен с облачными сервисами ЭЦП.
                      — Настроить хранение подписанных файлов в хранилище 1С.

                      6. **Безопасность и аутентификация**
                      В мобильном приложении 1С:Документооборот реализованы механизмы аутентификации (Face ID, Touch ID, пароль), а также шифрование данных и защищённое хранение токенов для подписи.

                      **Примерный алгоритм для пользователя на iPad:**

                      — Открыть мобильное приложение 1С:Документооборот.
                      — Найти документ, требующий подписи.
                      — Нажать кнопку «Подписать» (если реализовано).
                      — Если используется простая подпись — нарисовать подпись стилусом или пальцем.
                      — Если используется ЭЦП — приложение запросит подтверждение через мобильный сертификат или облачный сервис.
                      — Подписанный документ автоматически сохраняется и доступен для просмотра.

                      **Рекомендации по реализации:**

                      — Проверьте, что у вас установлена последняя версия мобильного приложения 1С:Документооборот.
                      — Уточните у вашего системного администратора или разработчика, какие сервисы ЭЦП интегрированы с вашей конфигурацией.
                      — Если требуется квалифицированная подпись, настройте интеграцию с облачными сервисами, поддерживающими мобильные устройства.
                      — Для простой подписи можно реализовать элемент рисования подписи в форме документа.

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

                      Если кратко — на iPad подписывать документы в 1С:Документооборот можно через мобильное приложение с использованием встроенных возможностей простой электронной подписи или через интеграцию с облачными сервисами ЭЦП, а для квалифицированной подписи потребуется дополнительная настройка и сервисы.

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

                        Andrey, привет!

                        Ошибка «Не удалось занять выбранный порт» в 1С:УТ 10.3.47.3 при работе со сканером штрихкода обычно связана с тем, что COM-порт, к которому подключен сканер, уже занят другим приложением или неправильно настроен.

                        Что проверить и сделать:

                        1. **Проверка занятости порта**
                        — Откройте «Диспетчер устройств» Windows, найдите ваш COM-порт (например, COM3, COM4 и т.д.).
                        — Убедитесь, что порт действительно существует и соответствует настройкам в 1С.
                        — Закройте все программы, которые могут использовать этот порт (например, терминальные программы, другие учетные системы, программы для работы с оборудованием).
                        — Можно использовать утилиты типа PortMon или Process Explorer, чтобы проверить, какие процессы используют порт.

                        2. **Параметры порта в 1С**
                        — В конфигурации 1С зайдите в настройки оборудования (Администрирование → Оборудование → Сканер штрихкода).
                        — Проверьте, что выбран правильный COM-порт.
                        — Проверьте скорость передачи данных (baud rate), биты данных, стоп-биты, паритет — они должны совпадать с настройками сканера. Обычно для сканеров это 9600, 8N1, но может отличаться.
                        — Если есть возможность, попробуйте переключить порт на другой COM-порт.

                        3. **Проверка драйверов и оборудования**
                        — Убедитесь, что драйверы для сканера установлены корректно и устройство работает в системе без ошибок.
                        — Попробуйте подключить сканер к другому USB-порту или другому компьютеру, чтобы исключить аппаратные проблемы.

                        4. **Проверка в 1С**
                        — В 1С попробуйте выполнить ручной тест устройства (кнопка «Тест» в настройках оборудования).
                        — Если тест не проходит, попробуйте временно отключить автоматический тест и проверить работу сканера в режиме ввода.

                        5. **Дополнительные рекомендации**
                        — Иногда помогает перезагрузка компьютера, чтобы освободить порт.
                        — Если используется виртуальный COM-порт (через USB-COM адаптер), попробуйте обновить драйверы адаптера.
                        — Проверьте, не включена ли в системе служба, которая может блокировать порт (например, службы удаленного доступа).

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

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

                        Кратко: ошибка «Не удалось занять порт» — порт занят или параметры неверны. Проверяйте занятость порта, настройки в 1С и драйверы устройства.

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

                          Лилия, привет!

                          В 1С:Документооборот КОРП редакция 3.0 добавление электронной цифровой подписи (ЭЦП) реализуется через встроенные механизмы работы с ЭЦП, которые базируются на использовании криптопровайдеров и сертификатов. Чтобы добавить ЭЦП в документы, нужно выполнить несколько шагов:

                          1. **Настройка криптопровайдера и сертификатов на клиенте**
                          Убедитесь, что на рабочем месте пользователя установлен и корректно настроен криптопровайдер (например, КриптоПро CSP) и в системе Windows импортирован действующий сертификат ЭЦП. Это базовое требование для работы с ЭЦП в 1С.

                          2. **Настройка в 1С:Документообороте**
                          В конфигурации 1С:Документооборот КОРП 3.0 предусмотрена подсистема работы с ЭЦП. Для ее использования:
                          — В разделе «Администрирование» — «Настройки» — «Электронная подпись» проверьте, что включена работа с ЭЦП.
                          — Настройте параметры подписи, если требуется, например, укажите используемый криптопровайдер, алгоритмы и т.п.

                          3. **Добавление ЭЦП к документам**
                          В типовых документах, участвующих в электронном документообороте, предусмотрена возможность подписания. Для этого:
                          — Откройте документ, который нужно подписать.
                          — В панели команд или в меню документа найдите команду «Подписать» или «Подписать ЭЦП».
                          — При нажатии система запросит выбор сертификата из установленных в системе.
                          — После выбора сертификата документ будет подписан, и в его реквизитах появится информация о подписи.

                          4. **Автоматизация и доработка**
                          Если требуется добавить ЭЦП в нестандартные документы или расширить функционал:
                          — Используйте встроенные методы работы с ЭЦП из подсистемы «ОбменСКонтрагентами» и «Электронный документооборот».
                          — В модуле объекта документа можно добавить вызовы методов подписания, например, через ОбменСКонтрагентами.ПодписатьДокумент(ОбъектДокумента, Сертификат).
                          — Для расширения функционала можно использовать обработчики событий документа (например, «ПослеЗаписи») для автоматической подписи.

                          5. **Проверка и хранение подписей**
                          — Подписанные документы хранятся с информацией о подписи, которая доступна для просмотра.
                          — В системе реализованы механизмы проверки подлинности ЭЦП при открытии и обмене документами.

                          Если нужна конкретика по коду или настройке, то вот пример вызова подписания документа в 1С:

                          Для типовых документов в 1С:Документообороте КОРП 3.0 обычно достаточно стандартных настроек и интерфейса.

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

                          Лилия, если нужна помощь с конкретным кодом или настройкой — пиши, помогу.

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

                            Dmitriy, привет!

                            Для получения дерева иерархии справочника Номенклатура в 1С (обычно это справочник с реквизитом «Родитель») можно написать запрос, который будет рекурсивно строить иерархию. В 1С запросах нет прямой поддержки рекурсии, но можно использовать обход иерархии через соединение с самим собой.

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

                            Объяснение:

                            — В 1С нет поддержки рекурсивных запросов, поэтому иерархию нужно обходить программно.
                            — Сначала выбираются корневые элементы (где Родитель = NULL).
                            — Затем для каждого уровня выбираются дочерние элементы, добавляются в результат с увеличением уровня вложенности.
                            — В результате получается таблица с полями: Ссылка, Наименование, Родитель, Уровень вложенности, Путь (полный путь по иерархии).

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

                            Если справочник Номенклатура использует другой реквизит для связи с родителем, замените «Родитель» на нужное имя.

                            Там подробно описан обход иерархий и примеры запросов.

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

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

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

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

                              3. Сделайте сопоставление пользователей информационной базы с пользователями 1С. Для этого:
                              — Откройте справочник «Пользователи»
                              — В меню «Ещё» выберите «Дополнительно» → «Пользователи информационной базы»
                              — Нажмите кнопку «Сопоставить»
                              — В открывшейся форме выберите того же пользователя и нажмите «Записать» и «Закрыть»
                              Это часто решает проблему с идентификацией.

                              4. Если используется аутентификация операционной системы, проверьте, что у пользователя корректно настроена аутентификация ОС (флаг «Аутентификация операционной системы» в карточке пользователя) и что учетная запись, под которой запущена служба 1С, имеет необходимые права.

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

                              6. Если ошибка возникает на сервере, проверьте профиль пользователя Windows, под которым запущена служба 1С. Иногда профиль становится временным, и это вызывает ошибки аутентификации. В этом случае:
                              — Остановите службу 1С
                              — Исправьте профиль пользователя (см. статью Microsoft по ошибке 80090024)
                              — Запустите службу снова

                              7. Проверьте логи сервера 1С и клиентские логи — там может быть более подробная информация о причине ошибки.

                              8. Если используется доменная аутентификация, убедитесь, что после обновления не изменились настройки запуска службы 1С и что служба запущена под правильной учетной записью с нужными правами.
                              https://infostart.ru/1c/articles/2095800/

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

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

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

                                Alex, привет!

                                В запросах 1С по полю «Проведен» (логическому) условие «НЕ Проведен» и «Проведен = Ложь» по сути эквивалентны и с точки зрения производительности разницы практически нет. Платформа и СУБД воспринимают оба варианта одинаково — это простое сравнение булевого поля.

                                Однако, если копнуть глубже:

                                — «Проведен = Ложь» — это явное сравнение, которое однозначно понятно и читаемо.
                                — «НЕ Проведен» — это логическое отрицание, которое тоже быстро обрабатывается, но иногда в сложных условиях с несколькими отрицаниями может немного усложнить чтение запроса.

                                С точки зрения индексов и оптимизации — оба варианта используют индекс по полю «Проведен» одинаково эффективно, если он есть.

                                Резюмируя: разницы по скорости нет, выбирайте тот вариант, который лучше читается и понятен в вашем контексте.

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

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

                                  В 1С:УНФ 8.3.27.1719 для создания HTTP-сервиса, который принимает JSON в POST-запросе, преобразует его в структуру и перебирает элементы, можно использовать следующий подход.

                                  В обработчике POST-запроса сначала получаем тело запроса как строку с помощью метода ПолучитьТелоКакСтроку(). Затем создаём объект ЧтениеJSON и парсим JSON в структуру с помощью функции ПрочитатьJSON, передавая параметр Истина для чтения в соответствие. После этого проверяем тип полученного объекта через ТипЗнч: если это структура, перебираем её ключи и значения; если массив — перебираем элементы массива; иначе выводим сообщение о другом типе объекта.

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

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