Odin — Одинэсник

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

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

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

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

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

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

      В чём опасность:

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

      2. Изменение возвращаемого объекта:
      Если возвращаемое значение — объект (например, структура), и вы изменяете его поля, то при следующем вызове функции с теми же параметрами вы получите уже изменённый объект, а не исходный. Это связано с тем, что возвращается ссылка на один и тот же объект из кэша. В типовых решениях так делать нельзя, т.к. это ведёт к трудноотслеживаемым ошибкам.

      3. Отсутствие возможности выборочного обновления:
      Единственный способ сбросить кэш — вызвать метод ОбновитьПовторноИспользуемыеЗначения(), который сбрасывает кэш для всех функций и всех модулей. Это может привести к временной потере производительности.

      4. Память:
      Кэширование занимает память, и если функция вызывается с большим количеством разных параметров, это может привести к росту потребления памяти.

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

      Рекомендую посмотреть здесь:
      https://infostart.ru/1c/articles/668213/ — подробное описание и примеры использования с предупреждениями.

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

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

        1. Подготовка базы КА 1.1 (источник):
        — Очистите справочники от дублей и помеченных на удаление элементов.
        — Проведите все документы, закройте отчетные периоды.
        — Проверьте корректность остатков: отсутствие отрицательных остатков, нулевых сумм.
        — Выполните расчет себестоимости, если используется.
        — При необходимости перепроведите документы после изменения настроек учета.
        — Сделайте резервную копию базы.

        2. Выгрузка остатков из КА 1.1:
        — В КА 1.1 нет типового универсального обмена с УТ 11.5, поэтому стандартный «Универсальный обмен данными в формате XML» не подойдет напрямую.
        — Используйте обработку «Конвертация данных 2.0» (если есть) или создайте собственную обработку выгрузки остатков в формате XML или табличных данных.
        — Выгружайте остатки по складам, номенклатуре, партиям, взаиморасчетам, а также справочники (Номенклатура, Контрагенты, Склад, Организации).
        — Важно выгрузить данные на дату, которая будет датой начала учета в УТ 11.5 (например, 01.01.2026).

        3. Подготовка базы УТ 11.5 (приемник):
        — Создайте новую информационную базу с УТ 11.5.
        — Настройте учетные политики, параметры учета, валюты, организации.
        — Загрузите справочники, если они не будут загружаться вместе с остатками (например, адресные классификаторы, курсы валют).
        — Сделайте резервную копию базы.

        4. Загрузка остатков в УТ 11.5:
        — Используйте обработку «Универсальный обмен данными в формате XML» (стандартная в УТ 11.5).
        — Для загрузки остатков подготовьте файл обмена с данными из КА 1.1 в формате, который понимает УТ 11.5.
        — Если выгрузка из КА 1.1 была в нестандартном формате, потребуется доработка правил конвертации (правила обмена) для корректного сопоставления объектов.
        — Загружайте справочники, затем остатки по складам, взаиморасчеты.
        — Важно: документы, которые создают движения по остаткам, загружать не нужно, чтобы не было двойных проводок.

        5. Проверка и корректировка:
        — После загрузки проверьте остатки по складам, взаиморасчетам, отчетам.
        — Сверьте с отчетами в КА 1.1.
        — При необходимости исправьте ошибки и повторите загрузку.

        6. Альтернативные варианты:
        — Использовать готовые обработки переноса с КА 1.1 в УТ 11.5, если найдете на Infostart или у партнеров 1С.
        — Заказать у программиста разработку индивидуальной обработки конвертации данных.
        — В некоторых случаях проще ввести остатки вручную в УТ 11.5 через «Помощник ввода начальных остатков» (если объем данных небольшой).

        Рекомендации и ссылки для изучения:

        — Опыт перехода с УТ 10 на УТ 11 — похожая логика переноса остатков, можно адаптировать:
        https://infostart.ru/1c/articles/2055263/

        — Правила обмена КД2 для переноса между разными версиями УТ (можно адаптировать под КА):
        https://infostart.ru/1c/tools/2231620/

        — Общие рекомендации по подготовке и переносу данных с помощью Конвертации данных 2.0:
        https://infostart.ru/1c/articles/660056/

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

        Если у вас есть доступ к программисту 1С, рекомендую сделать обработку выгрузки из КА 1.1 и загрузки в УТ 11.5 с помощью Конвертации данных 2.0, чтобы избежать ошибок и получить корректные остатки.

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

          В вашем фрагменте кода есть ошибка в условии:

          |Если СуммаСкидки >= ИтогВсего + Объект.СуммаСкидки Тогда

          Здесь сравнивается СуммаСкидки с суммой ИтогВсего + Объект.СуммаСкидки, что логически странно — вы сравниваете скидку с суммой итога плюс уже установленную скидку. Скорее всего, нужно сравнивать с ИтогВсего, а не с ИтогВсего + Объект.СуммаСкидки.

          Правильнее будет:

          |Если СуммаСкидки > ИтогВсего Тогда

          Или, если хотите учесть текущую скидку, то логика должна быть другой.

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

          Если СуммаСкидки — это значение из элемента формы (например, Элемент.Значение), то нужно явно его получить.

          Пример исправленного варианта:

          |Процедура СкидкаПоДокументуПриИзменении(Элемент)
          | СуммаСкидки = Элемент.Значение;
          | ИтогВсего = Объект.ИтогВсего; // или другой реквизит с итогом
          |
          | Если СуммаСкидки > ИтогВсего Тогда
          | ТекстСообщения = НСтр(«ru = ‘Сумма скидки превышает сумму по документу'»);
          | ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения, , «СуммаСкидки»);
          | Элемент.Значение = Объект.СуммаСкидки; // возвращаем прежнее значение
          | Возврат;
          | КонецЕсли;
          |
          | Объект.СуммаСкидки = СуммаСкидки;
          | РаспределитьСуммуСкидки(Объект);
          | ОбновитьИтоги(Объект);
          |КонецПроцедуры

          Обратите внимание:

          — Используйте Элемент.Значение для получения текущего значения поля.

          — Передавайте в процедуры объект Объект, а не ЭтотОбъект (если не в модуле объекта).

          — Вызов ОбщегоНазначенияКлиент.СообщитьПользователю — второй параметр пустой, это нормально.

          — Если в вашем коде ИтогВсего — это сумма по документу, то сравнивайте с ней.

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

          Проверьте весь модуль на наличие строки с «&Ignore» и удалите её.

          Если нужна помощь с поиском ошибки в модуле — можно выгрузить весь модуль или хотя бы 20-30 строк вокруг строки 621.

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

            Ошибка «Не удается перезаписать переменную PID, так как она является постоянной либо доступна только для чтения» возникает из-за того, что переменная $pid объявлена как константа или read-only, и её нельзя передавать по ссылке в [ref].

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

            ### Как исправить в твоём скрипте:

            В функции Get-ProcessWindowTitle перед вызовом

            нужно объявить $pid как обычную переменную, например:

            ### Полный исправленный фрагмент функции:

            ### По поводу копирования файлов с проверкой на одинаковость

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

            Пример на PowerShell:

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

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

              Синхронизация между 1С: Бухгалтерия Сельскохозяйственного Предприятия (БСХП) и 1С: Зарплата и Управление Персоналом (ЗУП) настраивается через встроенный механизм синхронизации данных, который есть в типовых конфигурациях 1С. Вот пошаговая инструкция:

              ### 1. Подготовка

              — Убедитесь, что версии БСХП и ЗУП поддерживают синхронизацию (обычно это версии 3.x).
              — Сделайте резервные копии обеих баз.
              — Проверьте, что в обеих базах настроены организации и справочники, которые будут участвовать в обмене.

              ### 2. Настройка синхронизации в ЗУП

              — В ЗУП зайдите в меню: Администрирование → Синхронизация данных.
              — Нажмите Создать новую синхронизацию.
              — В списке выберите Бухгалтерия предприятия (БСХП) или аналогичный пункт (если нет — выбирайте «Другая программа 1С»).
              — Выберите способ обмена:
              Через файл (рекомендуется для начальной настройки и отладки)
              — Или по сети (если базы на одном сервере или есть прямое подключение).
              — Укажите папку для обмена файлами (если через файл).
              — Задайте префиксы для каждой базы (например, «ЗУП_» и «БСХП_») — это важно для уникальности объектов.
              — Выберите организации, по которым будет обмен.
              — Настройте правила выгрузки и загрузки данных (обычно по умолчанию).
              — Сохраните настройки.

              ### 3. Настройка синхронизации в БСХП

              — В БСХП зайдите в Администрирование → Синхронизация данных.
              — Создайте новую синхронизацию, выберите ЗУП (или «Другая программа 1С»).
              — Укажите тот же способ обмена (файлы или сеть).
              — Укажите ту же папку обмена (если через файл).
              — Задайте префикс, соответствующий ЗУП.
              — Настройте правила обмена (обычно по умолчанию).
              — Сохраните.

              ### 4. Сопоставление данных

              — В обеих базах выполните сопоставление справочников:
              — Организации
              — Физические лица (сотрудники)
              — Контрагенты
              — Номенклатура (если требуется)
              — Это делается в разделе синхронизации — программа покажет объекты без соответствия, сопоставьте их вручную.

              ### 5. Выполнение обмена

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

              ### 6. Особенности и рекомендации

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

              Рекомендую посмотреть подробную инструкцию по настройке синхронизации на примере ЗУП и Бухгалтерии предприятия (аналогично для БСХП):
              https://infostart.ru/1c/articles/1052083/ — там подробно расписан весь процесс с картинками.

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

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

                Ошибка говорит, что функция Get-ProcessWindowTitle не определена к моменту вызова. В PowerShell функции должны быть объявлены ДО их вызова.

                В твоём скрипте функция Get-ProcessWindowTitle объявлена после того, как ты её вызываешь — так работать не будет.

                ### Как исправить:

                Перемести определение функции Get-ProcessWindowTitle в начало скрипта, чтобы она была объявлена до того, как ты её вызываешь.

                ### Пример исправленного скрипта (сокращённый, только с нужным):

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

                — Сохрани этот скрипт в файл ClosePutevki.ps1.
                — Запускай из батника через:

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

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

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

                  ### Как сделать аккуратно закрытие 1С только для нужной копии?

                  1С запускается одним процессом 1cv8.exe, но у тебя на сервере несколько баз и конфигураций. Чтобы закрыть только нужный экземпляр 1С (копию «Putevki»), нужно закрыть именно тот процесс 1cv8.exe, который работает с этой базой.

                  ### Варианты решения:

                  #### 1. Закрыть все процессы 1cv8.exe на сервере — НЕ подходит, т.к. есть другие конфы.

                  #### 2. Закрыть процесс 1cv8.exe, у которого в заголовке окна есть «Putevki» (название базы).

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

                  ### Пример PowerShell скрипта для закрытия 1С с окном «Putevki»:

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

                  — Сохрани этот скрипт в файл ClosePutevki.ps1 на сервере.
                  — В батнике вызови его так:

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

                  ### Почему так?

                  — Этот скрипт ищет процессы 1cv8.exe с окном, в названии которого есть «Putevki».
                  — Закрывает сначала корректно через CloseMainWindow().
                  — Если процесс не закрылся за 5 секунд — принудительно убивает.
                  — Другие процессы 1С (ЗУП, Договора и т.п.) не трогает.

                  ### В батнике общий алгоритм:

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

                  Рекомендую именно такой подход — он аккуратный и не трогает другие конфигурации.

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

                    Да, в батнике можно закрыть программу 1С (процесс 1cv8.exe) командой taskkill.

                    Например, чтобы принудительно закрыть все запущенные процессы 1cv8.exe, добавь в батник:

                    /IM 1cv8.exe — имя процесса
                    /F — принудительное завершение

                    Если хочешь закрыть только конкретный процесс с определённым окном (например, с названием окна, где открыта база «Putevki»), то в батнике это сложнее, но можно закрыть все 1cv8.exe, если уверены, что других 1С не запущено.

                    ### Пример с закрытием перед копированием:

                    ### Важное:

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

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

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

                      Вот пример простого батника, который реализует твой алгоритм с проверками и подсказками для оператора. Он:

                      1. Проверяет, запущена ли 1С на основном пути (D:Putevki) — если да, просит закрыть.
                      2. Проверяет, запущена ли 1С на копии (\Server2017Putevki) — если да, просит закрыть.
                      3. Если оба закрыты — копирует файл 1Cv8.1CD с основного пути на копию.
                      4. Выводит сообщения для оператора.

                      ### Как это работает:

                      tasklist ищет процессы 1cv8.exe с окном, в названии которого есть «Putevki» (можно подкорректировать под реальное название окна 1С).
                      — Если процесс найден — батник просит закрыть программу и завершает работу.
                      — Если оба процесса не найдены — копирует файл 1Cv8.1CD с основного пути на копию.
                      — В конце выводит результат.

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

                      — Убедиться, что в названии окна 1С есть слово «Putevki» (иначе tasklist не найдёт процесс). Можно проверить через диспетчер задач.
                      — Путь к файлу 1Cv8.1CD заменить на реальные.
                      — Запускать батник с правами пользователя, который имеет доступ к серверу и папкам.
                      — Если копия 1С открыта на сервере, батник не заменит файл — нужно закрыть копию.

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

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

                        Давай по шагам, как сделать копирование базы 1С (файла 1Cv8.1CD) из запущенной программы с заменой копии, используя алгоритм с выгрузкой и загрузкой данных — это единственный надёжный способ в 8.2.

                        ### Алгоритм:

                        1. Выгрузить текущую базу в файл dt (резервная копия).

                        2. Закрыть копию базы (если она открыта) — чтобы файл 1Cv8.1CD не был занят.

                        3. Заменить файл 1Cv8.1CD копии на новый — загрузить из dt в копию базы.

                        4. Открыть копию базы (если нужно).

                        ### Пример реализации в 1С (упрощённо):

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

                        — Функция ВыгрузитьВФайл() создаёт файл dt — архив с данными базы, а не сам файл 1Cv8.1CD.

                        — Чтобы заменить файл 1Cv8.1CD копии, база копии должна быть закрыта.

                        — Проверка ФайлЗанят() — пытается открыть файл на чтение, если не получается — значит файл занят.

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

                        ### Если нужно автоматизировать закрытие копии и запуск копирования — это уже вне 1С (скрипты Windows, bat, PowerShell).

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

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

                          Нельзя, если база 1С открыта и работает — файл 1Cv8.1CD занят системой, и ОС не позволит его скопировать или заменить изнутри той же запущенной базы.

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

                          Поэтому:

                          Нельзя из запущенной 1С напрямую скопировать и заменить файл 1Cv8.1CD той же базы.
                          — Можно сделать выгрузку базы в файл dt (через ВыгрузитьВФайл) и уже этот файл копировать/переносить.
                          — Если нужна именно копия файла 1Cv8.1CD, то база должна быть закрыта (все пользователи вышли), и копирование делается вне 1С (скриптом, батником, внешней обработкой).
                          — В 1С 8.2 нет встроенных средств для «горячего» копирования файла базы.

                          Если хочешь именно из меню в запущенной базе сделать копирование файла 1Cv8.1CD и заменить копию — это невозможно технически.

                          Если очень нужно именно так — надо:

                          1. Завершить работу с базой (закрыть 1С).
                          2. Запустить скрипт копирования файла.
                          3. Запустить 1С снова.

                          Или использовать серверные средства резервного копирования (например, SQL-сервер, если база на нем).

                          В итоге: копирование файла 1Cv8.1CD из запущенной 1С — нельзя. Только через выгрузку/загрузку или вне 1С.

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

                            В 1С 8.2 (8.2.19.130) из запущенной программы напрямую скопировать файл 1Cv8.1CD нельзя, если база открыта — файл занят системой. Чтобы сделать копию базы (заменить существующую копию), нужно использовать механизм выгрузки/загрузки данных или внешнюю обработку для резервного копирования.

                            Простой и надёжный способ — через встроенные методы:

                            1. Создать пункт меню, который запускает обработку резервного копирования.
                            2. В обработке вызвать метод ВыгрузитьВФайл() для выгрузки базы в файл .dt.
                            3. После выгрузки скопировать этот файл в нужное место (заменить копию).
                            4. При необходимости — загрузить из этого файла в копию базы.

                            Пример кода для пункта меню (в модуле объекта или общего модуля):

                            Объяснение:

                            ВыгрузитьВФайл() — выгружает всю базу в файл dt, который можно потом загрузить в другую базу.
                            — Копирование файла dt в файл 1Cv8.1CD — это не совсем корректно, т.к. dt — это архив с данными, а 1Cv8.1CD — файл базы. Но если у тебя именно копия базы в виде файла 1Cv8.1CD, то лучше делать выгрузку в dt, а потом загружать в копию базы.
                            — Если нужно именно заменить файл 1Cv8.1CD, то надо закрыть копию базы, чтобы файл не был занят, и копировать файл средствами ОС (через ВыполнитьКоманду или Выполнить).

                            Если хочешь именно копировать файл 1Cv8.1CD из текущей базы (что не рекомендуется, т.к. файл занят), то можно:

                            — Завершить работу с базой (закрыть ее).
                            — Запустить внешний скрипт или bat-файл, который скопирует файл.
                            — Или использовать внешнюю обработку, которая запускается вне 1С.

                            В 8.2 нет встроенных средств для копирования занятого файла базы.

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

                            Если всё же нужно из 1С запустить копирование файла 1Cv8.1CD (например, копия базы закрыта), то можно так:

                            Но этот код сработает только если файл не занят.

                            Рекомендую делать резервное копирование через выгрузку/загрузку данных, а не копировать файл 1Cv8.1CD напрямую из работающей базы.

                            Рекомендую посмотреть здесь, как правильно делать резервное копирование:
                            https://its.1c.ru/db/v82doc#bookmark:dev:TI00000000000000B7B3B7B3-1C-8-Backup

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

                              Привет! Похоже, ты хочешь узнать, как в 1С (например, в «1С:Предприятие») поставить категорию счета в плане счетов.

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

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

                              1. Открой конфигурацию в режиме конфигуратора (если у тебя есть доступ к конфигу).

                              2. Найди справочник «План счетов» (обычно называется «ПланСчетов.Хозрасчетный» или аналогично).

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

                              4. Если категория — это отдельный справочник (например, «Категории счетов»), то в плане счетов должен быть реквизит-ссылка на этот справочник.

                              5. В пользовательском режиме (1С:Предприятие) открой план счетов, выбери нужный счет и в его карточке в поле «Категория» выбери нужное значение.

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

                              Если ты имел в виду что-то другое (например, категорию счета в документе или в проводках), уточни, пожалуйста.

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

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

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

                                Если у вас сделана доработка, которая присваивает категории должностям, и сейчас категория подтягивается в документы ЕФС-1 и СТДР, а нужно, чтобы не подтягивалась, то правильный подход зависит от того, как реализована эта логика.

                                Варианты решения:

                                1. Изменить логику в самой доработке (коде)
                                — Если категория подтягивается программно (например, в обработчиках событий, процедурах заполнения реквизитов), то нужно убрать или изменить этот код, чтобы категория не передавалась в ЕФС-1 и СТДР.
                                — Это более правильный и надежный способ, так как исключает появление категории в данных на уровне бизнес-логики.

                                2. Изменить формы (управляемые формы документов ЕФС-1 и СТДР)
                                — Можно убрать или скрыть поле категории в формах, чтобы пользователь не видел и не мог изменить.
                                — Но это только визуальное решение, данные могут все равно подтягиваться и сохраняться в базе, что не всегда желаемо.

                                Рекомендация:
                                Меняйте логику в доработке, чтобы категория не попадала в документы ЕФС-1 и СТДР на этапе заполнения данных. Это исключит проблему на корню и не позволит ошибочно использовать категорию там, где она не нужна.

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

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

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

                                  Если в 1С:ЗУП отчет «Анализ НДФЛ по месяцам» показывает суммы, а в 6-НДФЛ при этом пусто, значит данные по НДФЛ в регистрах учета есть, но отчет 6-НДФЛ их не видит из-за особенностей отбора или заполнения. Вот конкретные причины и решения:

                                  1. Разные источники данных
                                  — «Анализ НДФЛ по месяцам» берет данные из регистров накопления или расчетов, где аккумулируются суммы по НДФЛ.
                                  — 6-НДФЛ формируется на основании регистра «Расчеты налоговых агентов с бюджетом по НДФЛ» и других специальных регистров, где фиксируются удержания и перечисления. Если в этих регистрах нет записей, 6-НДФЛ будет пустым.

                                  2. Отсутствие документов удержания НДФЛ
                                  — Проверьте, что в базе есть документы удержания НДФЛ (например, «Удержание НДФЛ» или «Начисление зарплаты» с удержанием).
                                  — Если удержания не оформлены или не проведены, 6-НДФЛ не заполнится, хотя начисления и налог исчислен могут быть.

                                  3. Дата удержания и дата получения дохода
                                  — В 6-НДФЛ суммы попадают по дате удержания налога и дате получения дохода. Если даты в документах не соответствуют отчетному периоду, данные не попадут в отчет.
                                  — Проверьте, что даты удержания и даты получения дохода в документах корректны и попадают в период отчета.

                                  4. Проверка параметров заполнения отчета 6-НДФЛ
                                  — При формировании отчета проверьте, что выбран правильный период и организация.
                                  — Убедитесь, что в настройках отчета нет фильтров, исключающих данные.

                                  5. Проверка регистров накопления
                                  — Откройте регистр «Расчеты налоговых агентов с бюджетом по НДФЛ» и посмотрите, есть ли записи за нужный период. Если нет — 6-НДФЛ будет пустым.
                                  — Если записи есть, но отчет пуст, возможно, проблема в алгоритме заполнения отчета (например, баг или доработка).

                                  6. Обновление конфигурации
                                  — В старых версиях ЗУП были ошибки в формировании 6-НДФЛ (например, неверные условия по датам удержания и получения дохода). Обновите конфигурацию до последнего релиза.

                                  7. Проверка корректности заполнения документов корректировки НДФЛ
                                  — Если есть документы корректировки учета НДФЛ, проверьте, что они проведены и корректно влияют на регистры.

                                  ### Быстрая проверка в конфигураторе (если есть доступ):

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

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

                                  Рекомендую посмотреть здесь, там подробно разбирают типичные ошибки с 6-НДФЛ в ЗУП:
                                  https://infostart.ru/1c/articles/586187/
                                  https://infostart.ru/1c/articles/522804/

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