Odin — Одинэсник

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

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

      Ошибка «PayDesk.error» при добавлении маркированного товара в РМК (Рабочем месте кассира) обычно связана с некорректными настройками работы с маркированной продукцией или с проблемами интеграции с подсистемой маркировки.

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

      1. Проверка настроек маркировки:
      — Убедитесь, что в справочнике «Штрихкоды упаковок и товаров» для данного товара есть корректная запись с типом упаковки «Маркированный товар».
      — Проверьте, что для маркировки заполнены все обязательные поля: штрихкод, тип штрихкода (DataMatrix для новых марок, PDF417 для старых), номенклатура.
      — В регистре сведений «Акцизные марки ЕГАИС» должна быть запись с соответствующим статусом (например, «В наличии») и связанная с номенклатурой.

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

      3. Обновление и проверка конфигурации:
      — Проверьте, что у вас актуальная версия конфигурации с поддержкой маркировки.
      — Если есть обновления, установите их.
      — Иногда помогает перезапуск РМК после обновления настроек.

      4. Проверка корректности обмена с подсистемой маркировки:
      — Проверьте логи обмена с подсистемой маркировки (например, Честный ЗНАК).
      — Убедитесь, что нет ошибок в обмене, и что все необходимые документы и регистры обновлены.

      5. Исправление ошибок в справочнике штрихкодов:
      — Используйте внешние обработки для исправления ошибок в справочнике «Штрихкоды упаковок и товаров» (например, обработка с infostart.ru для исправления распределения марок).
      — Это особенно актуально, если база была перенесена или обновлена.

      6. Ручной обход ошибки (если срочно нужно):
      — Создайте вручную запись в справочнике «Штрихкоды упаковок и товаров» с корректными параметрами.
      — Создайте запись в регистре сведений «Акцизные марки ЕГАИС» с нужным статусом и связью с номенклатурой.

      7. Логирование и диагностика:
      — Включите расширенное логирование РМК, чтобы получить более подробную информацию об ошибке.
      — Посмотрите стек вызовов и конкретное место ошибки в обработке.

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

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

      Рекомендую посмотреть здесь, там есть подробные инструкции по работе с маркировкой и исправлению ошибок:
      https://infostart.ru/1c/articles/1262704/
      https://helpf.pro/faq/view/1296.html

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

        В запросе 1С выражение

        |НЕ Счет В (&Счет)

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

        То есть:

        — &Счет — это параметр запроса, который содержит список (множество) значений счетов.
        — «Счет В (&Счет)» — означает, что поле «Счет» входит в этот список.
        — «НЕ Счет В (&Счет)» — значит, что поле «Счет» не входит в этот список.

        Применяется для исключения из выборки определённых счетов.

        Пример: если &Счет = {10, 20, 60}, то условие «НЕ Счет В (&Счет)» выберет все записи, у которых счет не равен 10, 20 или 60.

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

        Рекомендую посмотреть здесь:
        https://its.1c.ru/db/metod8dev/content/5457 (по работе с параметрами и отборами в запросах 1С)

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

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

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

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

            ### Физический сервер для 1С

            **Плюсы:**

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

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

            3. **Оптимизация дисковой подсистемы**
            Можно настроить RAID-массивы, контроллеры и диски под конкретные задачи 1С, что критично для производительности SQL Server и 1С.

            4. **Простота диагностики проблем с производительностью**
            Меньше слоев абстракции, проще выявлять узкие места.

            **Минусы:**

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

            2. **Меньшая гибкость масштабирования**
            Для увеличения ресурсов нужно физически докупать железо или менять сервер.

            3. **Риски простоя при аппаратных сбоях**
            Без организации отказоустойчивости (кластера, резервных серверов) простой может быть длительным.

            4. **Длительное время развертывания**
            Закупка и настройка физического сервера занимает больше времени, чем развертывание виртуальной машины.

            ### Виртуальная машина (ВМ) для 1С

            **Плюсы:**

            1. **Гибкость и масштабируемость**
            Легко увеличить CPU, RAM, дисковое пространство без физического вмешательства. Можно быстро развернуть дополнительные серверы.

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

            3. **Оптимизация использования ресурсов**
            На одном физическом сервере можно запускать несколько ВМ, эффективно используя ресурсы.

            4. **Быстрое развертывание и тестирование**
            Можно быстро создавать тестовые и разработческие окружения.

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

            **Минусы:**

            1. **Накладные расходы гипервизора**
            Некоторая потеря производительности из-за виртуализации, особенно при интенсивных дисковых операциях.

            2. **Риски конкуренции за ресурсы**
            Если на одном хосте много ВМ, возможны конфликты и падение производительности.

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

            4. **Зависимость от инфраструктуры виртуализации**
            Проблемы с гипервизором или хостом могут повлиять на все ВМ.

            ### Итоговые рекомендации

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

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

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

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

            ### Дополнительные советы

            — При выборе виртуализации обращайте внимание на производительность дисковой подсистемы (желательно SSD или NVMe, выделенные диски, RAID 10).

            — Для виртуальных серверов 1С рекомендуется выделять ресурсы с запасом и избегать оверкоммита CPU и RAM.

            — Важно мониторить нагрузку и своевременно масштабировать ресурсы, независимо от выбранного варианта.


            https://infostart.ru/1c/articles/720010/
            https://infostart.ru/1c/articles/1411007/
            https://infostart.ru/1c/articles/154405/
            https://infostart.ru/1c/articles/937504/

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

              Системные требования для работы 1С:Розница в составе платформы 1С:Предприятие 8 примерно совпадают с требованиями к самой платформе, но с учётом специфики розничной торговли (кассы, торговое оборудование и т.п.). Вот основные моменты:

              1. Операционная система:
              — Windows 7 SP1 и выше (Windows 8, 8.1, 10, 11)
              — Windows Server 2008 R2, 2012, 2016, 2019, 2022 (x64)
              — Linux (для серверной части, если используется кластер или сервер 1С на Linux)
              — Все актуальные обновления ОС должны быть установлены.

              2. Аппаратные требования для клиента (тонкий или толстый клиент):
              — Процессор Intel Celeron 2.7 ГГц и выше (рекомендуется Core i3/i5 и выше для комфортной работы)
              — ОЗУ минимум 4 Гб (рекомендуется 8 Гб и выше)
              — Жёсткий диск или SSD с минимум 1 Гб свободного места для установки и работы
              — Разрешение экрана не ниже 1280×768
              — USB-порт для подключения аппаратных ключей защиты и торгового оборудования (кассовые аппараты, сканеры, весы и т.п.)

              3. Серверная часть (если используется сервер 1С):
              — Многоядерный процессор (рекомендуется 4 ядра и выше)
              — ОЗУ от 8 Гб и выше (зависит от количества пользователей и нагрузки)
              — СУБД: PostgreSQL, MS SQL Server, IBM DB2, или встроенная СУБД 1С (для небольших магазинов)
              — Поддерживаемые версии СУБД и ОС смотрите на официальном сайте 1С: https://v8.1c.ru/requirements/

              4. Торговое оборудование:
              — Кассовые аппараты, фискальные регистраторы, сканеры штрихкодов, весы — должны быть совместимы с 1С:Розница (список совместимого оборудования есть в документации 1С и на сайте производителей)
              — Для работы с онлайн-кассами требуется подключение к интернету и соответствующая настройка.

              5. Прочее:
              — Для работы с несколькими системами налогообложения (например, УСН и ПСН) в 1С:Розница 2.3 нужно правильно настроить товарные группы и системы налогообложения в справочниках.
              — Для синхронизации с 1С:Бухгалтерия рекомендуется использовать актуальные версии обеих программ.

              Рекомендую посмотреть подробные системные требования и совместимость оборудования на официальном сайте 1С:
              https://v8.1c.ru/requirements/
              и в документации к 1С:Розница.

              Если нужна конкретика по версии 1С:Розница (например, 2.3 или 3.0), уточните, могу дать более точные рекомендации.

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

                Чтобы отправить сообщение пользователю с сервера в 1С, есть несколько распространённых способов, в зависимости от задачи и используемой платформы. Вот самые практичные варианты:

                ### 1. Через Константу и Обработчик Ожидания (Polling)

                Суть: Сервер записывает сообщение в константу, а клиенты периодически опрашивают эту константу и показывают сообщение.

                Как сделать:

                — Создаёте константу строкового типа, например, «_Сообщение».
                — На сервере пишете процедуру, которая устанавливает значение константы:

                — На клиенте в общем модуле или форме подключаете обработчик ожидания, который раз в N секунд проверяет константу и выводит сообщение, если оно новое.

                — Обработчик ожидания запускается при старте клиента:

                ### 2. Через Систему Взаимодействия (Обсуждения)

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

                — Создаёте служебное обсуждение для пользователя.
                — Сервер отправляет сообщение в это обсуждение.
                — Клиент подписывается на новые сообщения и обрабатывает их.

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

                ### 3. Push-уведомления на мобильные устройства (Firebase)

                Если нужно отправить push-уведомления на мобильные клиенты, можно использовать Firebase Cloud Messaging (FCM).

                — На мобильном клиенте получаете идентификатор подписчика.
                — Сервер отправляет push через FCM API.
                — Клиент получает и отображает уведомление.

                ### 4. Использование команды MSG (Windows)

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

                ### Пример кода для варианта 1 (через константу):

                Общий модуль «Уведомления»:

                В форме или при старте клиента:

                Рекомендую посмотреть здесь, там есть подробные примеры и объяснения:
                https://infostart.ru/1c/articles/334073/
                https://wonderland.v8.1c.ru/blog/peredacha-informatsii-s-servera/

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

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

                  Вот конкретный план и пример, как это сделать:

                  1. Создайте внешнюю обработку с формой, в которой будет выбор документа «Счет на оплату» (Документ.СчетНаОплатуПокупателю).

                  2. Загрузите сам документ Счет на оплату по ссылке, переданной в обработку (или выберите из списка).

                  3. Определите в обработке реквизиты для хранения подписей и печатей для каждой организации. Обычно это картинки (формат .bmp, .png) или файлы, которые загружаются в обработку.

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

                  5. Используйте объект ТабличныйДокумент для формирования печатной формы — это стандартный способ в 1С.

                  6. Вставьте изображения печати и подписи в нужные места печатной формы через ТабличныйДокумент.

                  ### Пример кода для внешней обработки (упрощённый):

                  ### Что нужно сделать дополнительно:

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

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

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

                  ### Рекомендации:

                  — Если хотите, чтобы печать и подпись были в определённых местах, используйте методы ТабличногоДокумента для позиционирования (например, УстановитьТекущуюЯчейку).

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

                  — Для более сложных печатных форм используйте встроенный редактор печатных форм или внешние шаблоны (FastReport).

                  Рекомендую посмотреть пример по работе с ТабличнымДокументом и вставке изображений здесь:
                  https://infostart.ru/public/1790657/ (пример с печатной формой и изображениями)

                  Если нужна готовая обработка — на Infostart часто выкладывают внешние печатные формы для УТ 11, можно поискать там с ключевыми словами «внешняя печатная форма счет на оплату с печатью».

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

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

                    Окей, раз создали внешнюю обработку в конфигураторе — дальше по шагам:

                    1. Создание структуры обработки

                    — В дереве объектов обработки (слева) есть узлы: «Формы», «Модули», «Команды» и т.п.
                    — Сначала создайте форму, если её нет:
                    — Правый клик на «Формы» → «Добавить» → выберите тип формы (обычно «Основная форма»).
                    — Назовите форму, например, «Форма».

                    2. Добавление реквизитов (если нужны)

                    — В форме можно добавить реквизиты (строки, числа, таблицы значений и т.п.).
                    — В редакторе формы справа есть вкладка «Реквизиты» — добавьте нужные поля, например, строковый реквизит «Текст».

                    3. Написание кода в модуле формы

                    — В дереве обработки откройте «Модули» → «Модуль формы».
                    — В модуле формы напишите код, например, обработчик кнопки или событие «ПриСозданииНаСервере».
                    — Пример:

                    4. Добавление команд (кнопок) на форму

                    — В форме можно добавить кнопки (команды).
                    — В редакторе формы справа вкладка «Команды» → «Добавить».
                    — Задайте имя команды, например, «Выполнить».
                    — В модуле формы добавьте процедуру обработки команды:

                    5. Заполнение модуля объекта обработки

                    — В дереве обработки откройте «Модули» → «Модуль объекта».
                    — Здесь можно написать процедуры и функции, которые будут доступны из формы.
                    — Например, вынесите логику исправления табуляций сюда.

                    6. Регистрация обработки в системе (если нужно)

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

                    7. Сохранение и тестирование

                    — Сохраните обработку (Файл → Сохранить).
                    — В режиме предприятия загрузите обработку (через меню «Дополнительные отчеты и обработки» → «Добавить из файла»).
                    — Запустите форму и проверьте работу.

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

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

                      В 1С 8.3.27 для защиты интеллектуальной собственности и сокрытия части кода, особенно серверного, есть несколько проверенных способов. Вот конкретное решение для вашего случая (код на сервере):

                      1. Перенос кода в модуль объекта и компиляция модуля

                      — Перенесите критичный алгоритм в модуль объекта (например, в модуль обработки, общего модуля или подсистемы).
                      — Сделайте этот модуль скомпилированным (без исходного текста).
                      — Для этого:
                      — Создайте пустую конфигурацию (файловую базу).
                      — Включите в неё вашу внешнюю обработку или общий модуль с нужным кодом.
                      — В свойствах конфигурации на вкладке «Разработка» заполните поля «Поставщик» и «Версия» (например, «Разработчик» и «1.0.0»).
                      — Обновите конфигурацию (F7).
                      — В настройках поставки снимите флаг «Включать в поставку исходный текст модулей объекта».
                      — Создайте файл поставки (без создания файла обновления).
                      — Откройте полученный файл поставки в конфигураторе и извлеките обработку/модуль — теперь модуль будет скомпилированным и исходный код скрыт.

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

                      2. Использование внешних обработок с закрытым кодом

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

                      3. Ограничение доступа к конфигуратору

                      — Чтобы никто не мог зайти в конфигуратор и посмотреть код, снимите у пользователей права на запуск конфигуратора.
                      — Можно сделать это программно, сняв роли с пользователей, кроме себя (администратора).
                      — Также можно сменить пароль администратора.

                      4. Защита от опасных действий

                      — В 1С 8.3 есть механизм «Защита от опасных действий», который ограничивает загрузку внешних обработок и выполнение опасных команд.
                      — Убедитесь, что этот механизм включён, чтобы предотвратить несанкционированный доступ к коду.

                      5. Дополнительные меры

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

                      Пример кода для создания скомпилированного модуля (кратко):

                      |// В модуле объекта вашей обработки или общего модуля
                      |Функция СекретнаяФункция() Экспорт
                      | // Ваш алгоритм
                      | Возврат «Секретные данные»;
                      |КонецФункции

                      Далее создаёте файл поставки без исходников, как описано выше.

                      Рекомендую посмотреть подробный разбор и пример здесь:
                      https://infostart.ru/1c/articles/2275597/

                      Там подробно описан процесс создания внешней обработки с закрытым (скомпилированным) кодом.

                      Если код именно серверный (например, общий модуль с серверными процедурами), то скомпилированный модуль — лучший способ скрыть логику. В 1С 8.3.27 это работает стабильно.

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

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

                        Форматы *.bsl и *.epf — это специфичные форматы 1С, и для их корректного создания и работы обычно требуется сама платформа 1С или конфигуратор.

                        Однако, если 1С под рукой нет, можно сделать так:

                        1. Создать текстовый файл с кодом 1С в любом текстовом редакторе (например, Notepad++, VSCode, Sublime Text). Расширение можно временно дать .bsl — это просто текстовый файл с кодом на встроенном языке 1С.

                        2. Для файла обработки (*.epf) — это уже бинарный формат, который содержит не только код, но и метаданные, структуру обработки и т.п. Создать его вручную без 1С невозможно.

                        3. Альтернативы:

                        — Можно использовать OneScript — это open-source среда для запуска скриптов 1С вне платформы. В OneScript можно писать и запускать скрипты на встроенном языке 1С, но для создания полноценного *.epf файла тоже нет.

                        — Есть проекты на GitHub, которые позволяют работать с кодом 1С вне платформы, но они не создают полноценные *.epf или *.bsl файлы, а скорее помогают с анализом и редактированием кода.

                        ### Что реально сделать без 1С:

                        — Написать код в любом текстовом редакторе и сохранить с расширением .bsl (просто текст).

                        — Потом, когда появится доступ к 1С, импортировать этот файл в конфигуратор.

                        ### Если нужно именно *.epf:

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

                        — Можно попросить коллегу с 1С создать пустую обработку и добавить туда ваш код.

                        ### Резюме:

                        — Для *.bsl — достаточно текстового редактора, это обычный текст.

                        — Для *.epf — нужен конфигуратор 1С.

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

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

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

                          |ПроцентНаценки = (ЦенаПродажи — ЦенаЗакупки) * 100 / ЦенаЗакупки;

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

                          1. Обращение к Объекту в процедурах изменения
                          В процедурах ПоследняяЦенаЗакупкиПриИзменении и ЦенаПродажиПриИзменении вы используете Объект.ПроцентНаценки и другие поля.
                          Убедитесь, что эти процедуры находятся в модуле формы или объекта, где Объект действительно доступен и содержит нужные реквизиты. Если это модуль формы, то Объект — это ссылка на текущий объект документа или справочника. Если процедуры в модуле объекта, то Объект не нужен, можно обращаться напрямую к реквизитам.
                          Если процедуры в модуле формы, то всё нормально.

                          2. Обработка нулевых и пустых значений
                          В функции РассчитатьПроцентНаценки проверяется только ЦенаЗакупки <> 0. Но если ЦенаЗакупки или ЦенаПродажи равны Неопределено или ПустаяСтрока, то будет ошибка при вычислении.
                          Рекомендую добавить проверку на тип и наличие значений, например:

                          |Если ЗначениеЗаполнено(ЦенаЗакупки) И ЗначениеЗаполнено(ЦенаПродажи) И ЦенаЗакупки <> 0 Тогда
                          | ПроцентНаценки = (ЦенаПродажи — ЦенаЗакупки) * 100 / ЦенаЗакупки;
                          |Иначе
                          | ПроцентНаценки = 0;
                          |КонецЕсли;

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

                          4. Типы данных
                          Убедитесь, что ЦенаЗакупки и ЦенаПродажи — числовые значения (например, число с плавающей точкой или число). Если они приходят из формы как строки, нужно преобразовать через Число().

                          5. Обработка отрицательных значений
                          Если ЦенаЗакупки или ЦенаПродажи могут быть отрицательными, то формула может дать неожиданный результат. Проверьте бизнес-логику.

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

                          Пример улучшенной функции с проверками:

                          |&НаКлиенте
                          |Функция РассчитатьПроцентНаценки(ЦенаЗакупки, ЦенаПродажи)
                          | ПроцентНаценки = 0;
                          | Если ЗначениеЗаполнено(ЦенаЗакупки) И ЗначениеЗаполнено(ЦенаПродажи) И ЦенаЗакупки <> 0 Тогда
                          | ПроцентНаценки = (ЦенаПродажи — ЦенаЗакупки) * 100 / ЦенаЗакупки;
                          | КонецЕсли;
                          | Возврат ПроцентНаценки;
                          |КонецФункции

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

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

                            Чтобы вставить номер заказа в макет печатной формы расходной накладной через расширение, сделайте так:

                            1. Создайте расширение конфигурации
                            — В конфигураторе создайте новое расширение для вашей конфигурации (например, УТ, КА, ERP).

                            2. Добавьте реквизит в документ расходной накладной (если его нет)
                            — В расширении откройте метаданные документа «Расходная накладная» (например, «Реализация товаров и услуг»).
                            — Добавьте новый реквизит, например, «НомерЗаказа» (тип — Строка или Ссылка на «Заказ покупателя»).
                            — Если реквизит уже есть, этот шаг пропускайте.

                            3. Заполните реквизит «НомерЗаказа» при создании документа
                            — В расширении в модуле объекта документа «Расходная накладная» создайте обработчик события, например, &ПередЗаписью или &ПриСозданииНаОсновании, чтобы заполнить реквизит из связанного заказа.
                            — Пример кода:

                            4. Добавьте макет печатной формы в расширение
                            — В расширении создайте новый макет печатной формы (например, копию стандартного макета расходной накладной).
                            — В макете добавьте поле для вывода реквизита «НомерЗаказа».
                            — В макете (например, в табличной части или в шапке) вставьте текстовое поле с выражением:

                            5. Подключите макет к печатной форме через расширение
                            — В расширении создайте обработчик события печати документа (например, &ПередПечатью или расширьте процедуру формирования печатной формы).
                            — В коде укажите, чтобы использовался ваш макет, либо добавьте реквизит в контекст макета.

                            Пример расширения процедуры печати:

                            6. Опубликуйте и протестируйте расширение
                            — Подключите расширение в базе.
                            — Создайте расходную накладную на основании заказа.
                            — Распечатайте документ — в печатной форме должен отображаться номер заказа.

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

                            Рекомендую посмотреть пример расширения печатной формы здесь:
                            https://infostart.ru/public/2374292/ — там подробно показано, как добавить реквизит и вывести его в макете через расширение.

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

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

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

                              Чтобы обойти это ограничение и запустить скрипт, сделайте так:

                              1. Создайте общий модуль в отдельной пустой базе 1С (например, в обычной базе «Управление торговлей» или «Бухгалтерия предприятия» без ограничений).

                              2. В этом модуле напишите нужный код (процедуру исправления табуляций).

                              3. В конфигураторе этой базы выгрузите модуль в файл (*.bsl).

                              4. В вашей базе КОРП в конфигураторе импортируйте этот модуль из файла (через меню «Файл» → «Загрузить из файла»).

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

                              Если нет возможности создать отдельную базу, можно сделать так:

                              — Создайте обработку (файл *.epf) в любой базе, где можно писать код.

                              — В обработке напишите процедуру исправления табуляций.

                              — Запустите обработку в вашей базе КОРП и выполните процедуру.

                              Пример кода для обработки (модуль обработки):

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

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

                                Если нужно в документ «Расходная накладная» (например, в типовой конфигурации УТ, КА или ERP) добавить номер заказа клиента, с которым связана эта накладная, то обычно делают так:

                                1. Добавить реквизит в документ «Расходная накладная»
                                — В конфигураторе откройте документ «Расходная накладная» (например, «Реализация товаров и услуг»).
                                — В реквизитах добавьте новое поле, например, «НомерЗаказа» (тип — строка или ссылка на документ «Заказ клиента»).
                                — Если хотите хранить именно номер, то строка, если ссылку — то ссылка на «Заказ клиента».

                                2. Заполнить реквизит при создании расходной накладной из заказа
                                — Если расходная накладная создается на основании заказа клиента (через механизм «Создать на основании»), то в обработчике создания документа нужно скопировать номер заказа.
                                — В модуле документа «Расходная накладная» или в обработчике создания на основании добавьте код, например:

                                3. Вывести номер заказа на форме документа
                                — В форме документа добавьте поле для отображения реквизита «НомерЗаказа».
                                — Можно сделать поле только для чтения.

                                4. Если нужно вывести номер заказа в печатной форме
                                — В макете печатной формы добавьте поле для вывода реквизита «НомерЗаказа».
                                — В коде печатной формы (если используется обработка) передайте значение реквизита.

                                5. Если номер заказа нужно получить из табличной части
                                — Иногда в табличной части расходной накладной есть ссылка на заказ (например, в строках). Тогда можно получить номер заказа из строки:

                                6. Если заказ не связан напрямую, а через документ реализации
                                — Тогда нужно получить заказ через документ реализации, например:

                                Если нужна конкретика по вашей конфигурации — укажите, какая именно (УТ, ERP, КА, Бухгалтерия и т.п.), и как именно создается расходная накладная (ручной ввод, создание на основании заказа, через обработку).

                                Рекомендую посмотреть здесь, как связать документы и передавать реквизиты:
                                https://infostart.ru/public/2374292/ (пример с передачей данных из заказа в УПД, можно адаптировать под расходную накладную)

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

                                  Привет! РегистрСведений.ЗаданияКРаспределениюВзаиморасчетов в 1С используется для хранения заданий на перераспределение взаиморасчетов между контрагентами, договорами, счетами и т.п. Это часть механизма, который обеспечивает корректное распределение взаиморасчетов в разрезе аналитики и периодов.

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

                                  Причины появления таких заданий и требования пересчета:

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

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

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

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

                                  Что делать:

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

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

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

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

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

                                  Рекомендую посмотреть подробности и примеры решения здесь:

                                  https://infostart.ru/public/125262/ — обработка восстановления последовательности расчетов (в том числе взаиморасчетов)

                                  https://infostart.ru/articles/203645/ — общая процедура закрытия месяца и порядок регламентных операций

                                  Если нужна конкретика по вашей конфигурации — укажите, какая именно (БП, УПП, КА, ERP), тогда дам более точные рекомендации.

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