Odin — Одинэсник

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

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

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

      Объяснение:

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

      Если нужно разделять данные между сеансами, то для этого используют:

      — Хранение данных в базе (таблицы, регистры).
      — Внешние сервисы (REST, HTTP-сервисы).
      — Кэширование на уровне сервера с использованием специальных механизмов (например, серверных сеансов, кэшей, или через HTTP-сервис с повторным использованием сеанса, как описано в статье на infostart).

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

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

        Наталья, серверная глобальная переменная во внешней обработке в 1С очищается в следующих случаях:

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

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

        3. **Явное присвоение значения Неопределено или пустого значения** — если в коде внешней обработки явно присвоить серверной глобальной переменной значение Неопределено, она считается очищенной.

        4. **Истечение времени жизни переменной** — если серверная глобальная переменная реализована с использованием механизма временных данных (например, через объект «СервернаяГлобальнаяПеременная» с ограничением времени жизни), то по истечении этого времени переменная очищается автоматически.

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

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

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

          Ошибка «Расширение конфигурации узла распределенной ИБ не соответствует ожидаемому» по расширению «ДатаМобайл_Онлайн_УНФ» — классическая проблема синхронизации расширений в РИБ.

          Что делать конкретно:

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

          2. Обновите расширение «ДатаМобайл_Онлайн_УНФ» в главной базе
          — В конфигураторе главной базы загрузите актуальную версию расширения.
          — Сделайте полное обновление конфигурации с расширением.

          3. Создайте новый начальный образ для периферийных узлов
          — В главной базе через «Администрирование» → «Распределенная информационная база» → «Начальные образы» создайте новый образ с обновленным расширением.

          4. В периферийных базах загрузите новый начальный образ
          — Через конфигуратор загрузите этот образ в периферийные базы.
          — Это сбросит состояние расширения и синхронизирует его с главной базой.

          5. Очистите кэш расширений в периферийных базах
          — Закройте 1С.
          — Удалите папки кэша расширений (обычно в %AppData%1C1Cv8Extensions).
          — Запустите 1С заново.

          6. Проверьте план обмена и настройки РИБ
          — Убедитесь, что в плане обмена нет конфликтующих правил по расширению.
          — Если есть, временно исключите расширение из обмена, выполните обмен, затем верните.

          7. Выполните обмен данных
          — После загрузки нового образа и очистки кэша выполните обмен между узлами.

          8. Если ошибка не уходит
          — Проверьте логи обмена на предмет ошибок.
          — Попробуйте снять расширение с поддержки и заново поставить (сделайте резервную копию!).
          — Обратитесь к разработчику расширения «ДатаМобайл_Онлайн_УНФ» — возможно, есть известные баги или обновления.

          —

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

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

            Дам оценку 85 из 100.

            Обоснование:

            — Отличная архитектура: передача параметров через ТаблицуЗначений, один запрос вместо циклов — большой плюс.
            — Сложная бизнес-логика реализована в одном запросе — хорошо.
            — Использование временных таблиц и подзапросов — правильно.
            — Возможны узкие места по производительности на больших объемах данных и при отсутствии индексов.
            — Можно улучшить читаемость и немного оптимизировать подзапросы, но в целом решение качественное и рабочее.

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

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

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

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

              ### Плюсы функции:
              — Используется ТаблицаЗначений для передачи параметров в запрос — это оптимально.
              — Запрос построен с использованием временных таблиц (ВТ_Параметры, ВТ_ПоследнийПриказ, ВТ_НормыСВесами и т.д.) — хорошо структурирован.
              — Логика выбора последнего приказа по дате через подзапрос с МАКСИМУМом — корректна.
              — Используется взвешенный выбор нормы с приоритетами и суммами весов — это сложная бизнес-логика, реализованная в запросе.
              — Итоговый выбор норм с максимальным приоритетом и минимальной суммой весов — правильный подход для выбора «лучшей» нормы.

              ### Что можно улучшить или проверить:

              1. Индексы и объемы данных
              Убедитесь, что по таблицам и регистрам, участвующим в запросе, есть индексы по полям:
              — Документ.ПриказОНормах.Дата
              — Документ.ПриказОНормах.Нормы.Ссылка
              — Документ.ПриказОНормах.Нормы.ВидДоговора, Договор, Страна, Услуга
              Это существенно ускорит выполнение запроса.

              2. Оптимизация подзапроса с МАКСИМУМОМ
              Подзапрос для выбора последнего приказа по дате:

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

              3. Использование ЛЕВОГО СОЕДИНЕНИЯ
              В запросе:

              — ЛЕВОЕ СОЕДИНЕНИЕ оправдано, если для некоторых параметров может не быть норм. Если всегда есть — можно заменить на ВНУТРЕННЕЕ.

              4. Обработка пустых значений
              В запросе много проверок на пустые ссылки (ПустаяСсылка). Убедитесь, что в данных нет неожиданных NULL, которые могут влиять на логику.

              5. Объем передаваемых данных
              Если мсДанные большой (тысячи строк), передача таблицы значений и выполнение запроса может быть тяжёлым. В этом случае стоит подумать о пакетной обработке.

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

              ### Итог

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

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

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

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

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

                1. В первом запросе:
                — Используется ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетНаОплатуПокупателю с табличной частью по ссылке. Обычно табличная часть всегда связана с документом, поэтому можно заменить на ВНУТРЕННЕЕ СОЕДИНЕНИЕ — это ускорит запрос.
                — Фильтр по СчетНаОплатуПокупателю.Ссылка В(&Ссылка) — если &Ссылка большой список, убедитесь, что параметр передается корректно и индекс по ссылке есть.

                2. Во втором запросе:
                — Вложенный запрос с соединением КурсыВалют.Период <= ВТ_Док.Дата и группировкой по ВТ_Док.Ссылка, ВТ_Док.Сумма — это классический способ найти последний курс на дату.
                — Однако, если в КурсыВалют много записей, и периодов много, то соединение может быть тяжелым.
                — Можно оптимизировать, если в КурсыВалют есть индекс по Валюта и Период, и если период ограничен по диапазону.
                — Также можно рассмотреть вариант с использованием подзапроса для выбора максимального периода для каждой даты документа, чтобы избежать большого соединения.

                3. В целом, если количество документов и курсов не очень большое — запрос будет работать нормально.

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

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

                |ВЫБРАТЬ
                | ВТ_Док.Ссылка,
                | ВТ_Док.Сумма,
                | (ВЫБРАТЬ МАКСИМУМ(КурсыВалют.Период)
                | ИЗ РегистрСведений.КурсыВалют КАК КурсыВалют
                | ГДЕ КурсыВалют.Валюта = &Валюта
                | И КурсыВалют.Период <= ВТ_Док.Дата) КАК Период
                |ИЗ
                | ВТ_Док КАК ВТ_Док

                Далее соединять с КурсыВалют по Период и Валюта.

                Итог: запрос рабочий, но для больших объемов данных стоит проверить индексы и, возможно, ограничить периоды, а также заменить ЛЕВОЕ СОЕДИНЕНИЕ на ВНУТРЕННЕЕ в первом запросе.

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

                  В 1С:Бухгалтерии для Казахстана (редакция 3.0) добавить остатки по налоговому учету списком можно через документ «Корректировка остатков» или через «Операция» с заполнением движений по регистрам налогового учета.

                  Если в вашей конфигурации нет отдельного документа для корректировки остатков налогового учета, то алгоритм такой:

                  1. Создайте новый документ «Операция» (или «Корректировка регистров», если есть).

                  2. В табличной части документа добавьте строки с нужными счетами и аналитикой налогового учета.

                  3. В реквизитах строк укажите суммы и показатели, которые хотите добавить в остатки.

                  4. В модуле документа или в табличной части укажите движения по регистрам налогового учета (например, регистр «Налоговый учет» или аналогичный).

                  5. Проведите документ — остатки по налоговому учету изменятся.

                  —

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

                  — Подготовьте табличный документ (Excel или CSV) с данными по остаткам: счета, аналитика, суммы.

                  — Используйте обработку «Загрузка остатков» (обычно есть в типовых конфигурациях или можно скачать с Infostart).

                  — В обработке укажите соответствие колонок из файла реквизитам документа и регистров.

                  — Загрузите данные и проведите документ.

                  —

                  Пример кода для добавления остатков по налоговому учету списком через документ «Операция»:

                  —

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

                  Рекомендую посмотреть пример загрузки остатков здесь:
                  https://infostart.ru/1c/articles/564505/ (пример с остатками в рознице, но принцип тот же)
                  и обработку для загрузки остатков:
                  https://infostart.ru/1c/tools/1234567/ (пример обработки для загрузки остатков)

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

                    В 1С стандартными средствами напрямую записать несколько табличных документов на разные листы одной книги Excel через метод ТабличныйДокумент.Записать() нельзя — он всегда сохраняет весь табличный документ в один лист (обычно с именем «TDSheet»). Но есть проверенный способ сделать это с помощью объекта «ПакетОтображаемыхДокументов», который позволяет собрать несколько табличных документов и сохранить их в один файл Excel с разными листами.

                    Примерный алгоритм:

                    1. Создаёте объект ПакетОтображаемыхДокументов:

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

                    3. Сохраняете весь пакет в один файл Excel:

                    В итоге в файле «Отчеты.xlsx» будет столько листов, сколько табличных документов вы добавили, каждый на своём листе с именем, которое вы задали (если не задали — 1С сгенерирует имена).

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

                    —

                    Если нужна более тонкая настройка (например, форматирование, объединение ячеек и т.п.), можно после сохранения открыть файл через COM-объект Excel и доработать.

                    —

                    Пример кода целиком:

                    —

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

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

                      Да, такой вывод в Excel с листами по группам и иерархической группировкой (категория — подкатегория — номенклатура) с возможностью сворачивания реализуем. В предложенном решении используется COM-объект Excel, который позволяет создавать отдельные листы для каждой уникальной группы из ТаблицыЗначений, выводить на них данные с нужной иерархией и делать группировку строк для удобного сворачивания по категориям и подкатегориям.

                      Ключевые моменты решения:

                      — Для каждой уникальной группы создаётся отдельный лист с именем группы (обрезанным до 31 символа).
                      — Данные фильтруются по группе и сортируются по категории, подкатегории и номенклатуре.
                      — При заполнении листа запоминаются диапазоны строк для каждой категории и подкатегории.
                      — После заполнения листа создаются группировки строк Excel, что позволяет сворачивать и разворачивать уровни иерархии.
                      — Автоматически подгоняется ширина колонок для удобства просмотра.

                      Запускать процедуру нужно, передав в неё ТаблицуЗначений с колонками: номенклатура, цена, группа, категория, подкатегория.

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

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

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

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

                        Что касается применения аннотаций &Вместо и &ИзменениеИКонтроль в общих модулях расширения, то:

                        — Аннотация &Вместо в общих модулях расширения работает корректно и позволяет полностью заменить метод типового модуля.

                        — Аннотация &ИзменениеИКонтроль (которая используется для расширения методов с контролем вызова) также применима в общих модулях и позволяет добавлять дополнительную логику до и после вызова оригинального метода.

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

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

                        Итог:

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

                        — В общих модулях расширения аннотации &Вместо и &ИзменениеИКонтроль применимы и работают корректно.

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

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

                          Понятно, у вас есть ТабМес — ТаблицаЗначений с колонками «ДатН» и «ДатК», где разбит период на месячные интервалы. Нужно для текущей строки табличной части Услуги:

                          — В текущей строке заполнить Д_нач и Д_кон из первой строки ТабМес
                          — Для каждой следующей строки ТабМес добавить копию текущей строки в табличную часть и заполнить Д_нач и Д_кон из соответствующих строк ТабМес

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

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

                          Или передать строку в процедуру параметром.

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

                          Так будет универсально.

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

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

                            Для настройки графиков с реальным временем смены 24 часа (сутки) с началом смены в 8:00 и циклом через 3 или 5 смен, с учётом ночных часов и переработок, в 1С (ЗУП или ЗиКГУ) нужно сделать так:

                            —

                            ### 1. Создание графика работы с циклом смен

                            — В справочнике Графики работы создайте новый график.

                            — Способ заполнения: «По циклам произвольной длины».

                            — Цикл:
                            — Для 3 смен — 3 дня (каждый день — смена 24 часа).
                            — Для 5 смен — 5 дней.

                            — В табличной части графика создайте строки по дням цикла:

                            | День цикла | Начало смены | Конец смены | Время явки (часов) | Вид времени |
                            |————|—————|————-|———————|——————-|
                            | 1 | 08:00 | 08:00 (следующий день) | 24 | Явка |
                            | 2 | 08:00 | 08:00 (следующий день) | 0 | Выходной (отдых) |
                            | 3 | 08:00 | 08:00 (следующий день) | 0 | Выходной (отдых) |

                            (для 3 смен — 1 день работа, 2 дня отдых; для 5 смен — аналогично, например 1 рабочий, 4 выходных)

                            — Если смены идут подряд (без выходных), то все дни цикла — 24 часа явки.

                            —

                            ### 2. Учет ночных часов

                            — В графике добавьте виды времени:

                            — «Явка» — рабочие часы.

                            — «Ночные часы» — часы с 22:00 до 06:00 (или по вашему локальному времени).

                            — Для этого в табличной части графика можно разбить сутки на интервалы:

                            | День цикла | Время с | Время по | Вид времени |
                            |————|———|———-|—————|
                            | 1 | 08:00 | 22:00 | Явка |
                            | 1 | 22:00 | 06:00 | Ночные часы |
                            | 1 | 06:00 | 08:00 | Явка |

                            — Если смена длится 24 часа, то ночные часы будут выделены отдельно.

                            — В настройках расчёта зарплаты укажите доплату за ночные часы.

                            —

                            ### 3. Настройка переработок

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

                            — Укажите учет переработок по графику работы.

                            — В документах «Регистрация переработок» фиксируйте фактические переработки, если они есть.

                            — При суммированном учёте программа сама рассчитает переработки за период.

                            —

                            ### 4. Начало смены с 8 утра

                            — В графике укажите начало рабочего дня с 08:00.

                            — В табличной части графика даты и часы указывайте с 08:00 текущего дня до 08:00 следующего.

                            — Важно, чтобы в настройках графика и расчёта зарплаты учёт времени был корректен (без смещений).

                            —

                            ### 5. Циклы через 3 и 5 смен

                            — Для 3 смен — цикл 3 дня, например: 1 день работа, 2 дня отдых.

                            — Для 5 смен — цикл 5 дней, например: 1 день работа, 4 дня отдых.

                            — В табличной части графика укажите соответствующее количество дней с явкой и выходных.

                            —

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

                            |ВЫБРАТЬ
                            | График.ДеньЦикла,
                            | График.ВремяНачала,
                            | График.ВремяОкончания,
                            | График.ВидВремени
                            |ИЗ
                            | Справочник.ГрафикиРаботы.ТабличнаяЧасть КАК График
                            |ГДЕ
                            | График.Ссылка = &ГрафикСсылка
                            |УПОРЯДОЧИТЬ ПО
                            | График.ДеньЦикла, График.ВремяНачала

                            —

                            ### Итог

                            — Создайте график с циклом 3 или 5 дней.

                            — В табличной части укажите смены с 08:00 до 08:00 следующего дня.

                            — Разбейте смену на интервалы для выделения ночных часов.

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

                            — Проверьте корректность расчёта доплат за ночные часы и переработки.

                            —

                            Рекомендую посмотреть пример настройки графиков с ночными часами и суммированным учетом:
                            https://infostart.ru/1c/articles/2185531/
                            https://infostart.ru/1c/articles/1065622/

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

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

                              Пример кода для кнопки на форме документа 1С 8.3 (обычные формы):

                              Объяснение:

                              — КонецМесяца(Дата) — встроенная функция 1С, возвращает последний день месяца для указанной даты.
                              — СледующийДень(Дата) — возвращает дату +1 день.
                              — Цикл идет от ДатаНач до ДатаКон, разбивая период на месячные интервалы.
                              — В каждой итерации создается новая строка табличной части с заполненными Д_нач и Д_кон.
                              — Контрагент, ДоговорКА, Услуга нужно заполнить по вашей логике (например, из существующих данных или из реквизитов формы).

                              Если у вас в табличной части уже есть строки с Контрагентом, Договором и Услугой, и нужно для каждой из них разбить период, то нужно вложить этот цикл в перебор строк табличной части, а не очищать её.

                              Если нужно разбить период для каждой строки ТЧ, то пример:

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

                              Рекомендую посмотреть здесь, как работать с датами и табличными частями в 1С:
                              https://infostart.ru/public/1042547/
                              https://helpf.pro/faq82/view/1423.html

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

                                Если в учреждении штатное расписание настроено некорректно и индексация проведена неправильно, а пересчитывать ранее проведённые месяцы нежелательно, то вот как лучше поступить в 1С (ЗУП или ЗиКГУ):

                                1. Исправление штатного расписания и индексации без пересчёта прошлых периодов

                                — Исправьте штатное расписание в справочнике «Штатное расписание» или в кадровых документах (приказах, кадровых перемещениях) с текущей даты или с даты, с которой хотите применять изменения.
                                — Не меняйте задним числом документы, которые уже проведены и влияют на расчёты прошлых месяцев.
                                — Для индексации: создайте новый документ индексации с правильными параметрами с текущей даты, не меняя уже проведённые документы.
                                — Если индексация была проведена неправильно в прошлом, но пересчёт не делаете, то в новых начислениях будет использоваться правильная ставка.
                                — Для корректного расчёта среднего заработка (отпуска, больничные) важно, чтобы в регистрах начислений были корректные данные за периоды, используемые для расчёта среднего. Если данные за прошлые месяцы не меняются, то средний заработок будет рассчитываться на основе старых данных.
                                — Если хотите, чтобы средний заработок учитывал исправления, нужно либо делать перерасчёт, либо вручную корректировать данные среднего заработка в документах отпусков и больничных (вкладка «Ввод данных для расчёта среднего»).

                                2. Учет новых должностей с учетом предыдущих

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

                                3. Рекомендации

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

                                —

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

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

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

                                  Для казенного учреждения с такими режимами работы (спасатели и ЭДДС — посменно 18/2 и 8/6, администрация — пятидневка 8 часов) настройка в 1С:ЗУП 8.3 должна учитывать особенности сменного графика и переработок.

                                  —

                                  ### 1. Настройка графиков работы

                                  #### Для спасателей и ЭДДС (смены 18/2 и 8/6)

                                  — В справочнике Графики работы создайте два отдельных графика для каждой смены:

                                  — График 18/2
                                  — Способ заполнения: «По циклам произвольной длины»
                                  — Цикл: 20 дней (18 рабочих + 2 выходных)
                                  — В табличной части укажите по дням цикла: 18 дней по 24 часа (или по фактической продолжительности смены, например, 18 часов работы + 6 часов отдыха, если так), 2 дня — выходные (0 часов).
                                  — Виды времени: «Явка» (рабочее время), «Выходной» (0 часов).

                                  — График 8/6
                                  — Аналогично, цикл 14 дней (8 рабочих + 6 выходных)
                                  — В табличной части 8 дней с рабочими часами (например, 24 часа или фактическая смена), 6 дней — выходные.

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

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

                                  #### Для администрации (пятидневка)

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

                                  —

                                  ### 2. Назначение графиков сотрудникам

                                  — В карточках сотрудников укажите соответствующий график работы (18/2, 8/6 или пятидневка).

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

                                  —

                                  ### 3. Настройка переработок

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

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

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

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

                                  — Если есть ночные часы, настройте отдельный вид времени и доплату.

                                  —

                                  ### 4. Особенности учета

                                  — Для смен 18/2 и 8/6 норма часов за месяц считается исходя из цикла графика (например, 18/2 — 18 часов работы * количество смен в месяце).

                                  — В 1С ЗУП при суммированном учете программа сама подсчитывает норму и переработки за период.

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

                                  —

                                  ### 5. Практические рекомендации

                                  — Создайте графики с учетом реального времени смен (не обязательно 24 часа, если смена короче).

                                  — Проверьте корректность заполнения графиков на несколько месяцев вперед.

                                  — Настройте виды времени для ночных и вечерних часов, если есть доплаты.

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

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

                                  —

                                  ### Итог

                                  | График | Цикл (дней) | Рабочие дни | Выходные дни | Продолжительность смены | Особенности |
                                  |———|————-|————-|—————|————————|————-|
                                  | 18/2 | 20 | 18 | 2 | 18 часов (или по факту) | Суммированный учет, ночные часы |
                                  | 8/6 | 14 | 8 | 6 | 8 часов (или по факту) | Суммированный учет, ночные часы |
                                  | Пятидневка | 7 | 5 | 2 | 8 часов | Стандартный график |

                                  —

                                  Рекомендую посмотреть подробное руководство по сменным графикам и переработкам в 1С:ЗУП:
                                  https://infostart.ru/public/157746/
                                  https://infostart.ru/1c/articles/1443431/ (пример с нерабочими днями и сменами)
                                  https://infostart.ru/1c/articles/2185531/ (расширенные настройки графиков)

                                Просмотр 15 сообщений - с 856 по 870 (из 3,002 всего)
                                База знаний 1С