Odin — Одинэсник

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

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

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

      В Альфа-Авто (как и в большинстве типовых конфигураций 1С на базе УТ/КА) основная единица измерения номенклатуры хранится в реквизите справочника «Номенклатура» — обычно это реквизит «ЕдиницаИзмерения» (или аналогичный, зависит от конфигурации).

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

      1. Найти объект справочника «ЕдиницыИзмерения» по наименованию, которое совпадает с наименованием основной единицы.

      2. Присвоить найденный объект в реквизит «ЕдиницаИзмерения» объекта номенклатуры.

      3. Записать объект номенклатуры.

      Пример кода на встроенном языке 1С:

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

      Если же у тебя есть несколько единиц измерения и нужно именно «Основная» (например, в табличной части «ЕдиницыИзмеренияНоменклатуры»), то тогда нужно:

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

      — Установить флаг «Основная» (если есть такой реквизит) или переместить эту единицу в основную.

      Пример для табличной части:

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

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

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

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

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

        В Альфа-Авто (как и в большинстве типовых конфигураций 1С на базе УТ/КА) основная единица измерения номенклатуры хранится в реквизите справочника «Номенклатура» — обычно это реквизит «ЕдиницаИзмерения» (или аналогичный, зависит от конфигурации).

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

        1. Найти объект справочника «ЕдиницыИзмерения» по наименованию, которое совпадает с наименованием основной единицы.

        2. Присвоить найденный объект в реквизит «ЕдиницаИзмерения» объекта номенклатуры.

        3. Записать объект номенклатуры.

        Пример кода на встроенном языке 1С:

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

        Если же у тебя есть несколько единиц измерения и нужно именно «Основная» (например, в табличной части «ЕдиницыИзмеренияНоменклатуры»), то тогда нужно:

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

        — Установить флаг «Основная» (если есть такой реквизит) или переместить эту единицу в основную.

        Пример для табличной части:

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

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

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

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

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

          В Альфа-Авто (как и в большинстве типовых конфигураций 1С на базе УТ/КА) основная единица измерения номенклатуры хранится в реквизите справочника «Номенклатура» — обычно это реквизит «ЕдиницаИзмерения» (или аналогичный, зависит от конфигурации).

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

          1. Найти объект справочника «ЕдиницыИзмерения» по наименованию, которое совпадает с наименованием основной единицы.

          2. Присвоить найденный объект в реквизит «ЕдиницаИзмерения» объекта номенклатуры.

          3. Записать объект номенклатуры.

          Пример кода на встроенном языке 1С:

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

          Если же у тебя есть несколько единиц измерения и нужно именно «Основная» (например, в табличной части «ЕдиницыИзмеренияНоменклатуры»), то тогда нужно:

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

          — Установить флаг «Основная» (если есть такой реквизит) или переместить эту единицу в основную.

          Пример для табличной части:

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

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

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

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

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

            В Альфа-Авто (как и в большинстве типовых конфигураций 1С на базе УТ/КА) основная единица измерения номенклатуры хранится в реквизите справочника «Номенклатура» — обычно это реквизит «ЕдиницаИзмерения» (или аналогичный, зависит от конфигурации).

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

            1. Найти объект справочника «ЕдиницыИзмерения» по наименованию, которое совпадает с наименованием основной единицы.

            2. Присвоить найденный объект в реквизит «ЕдиницаИзмерения» объекта номенклатуры.

            3. Записать объект номенклатуры.

            Пример кода на встроенном языке 1С:

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

            Если же у тебя есть несколько единиц измерения и нужно именно «Основная» (например, в табличной части «ЕдиницыИзмеренияНоменклатуры»), то тогда нужно:

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

            — Установить флаг «Основная» (если есть такой реквизит) или переместить эту единицу в основную.

            Пример для табличной части:

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

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

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

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

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

              В Альфа-Авто (как и в большинстве типовых конфигураций 1С на базе УТ/КА) основная единица измерения номенклатуры хранится в реквизите справочника «Номенклатура» — обычно это реквизит «ЕдиницаИзмерения» (или аналогичный, зависит от конфигурации).

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

              1. Найти объект справочника «ЕдиницыИзмерения» по наименованию, которое совпадает с наименованием основной единицы.

              2. Присвоить найденный объект в реквизит «ЕдиницаИзмерения» объекта номенклатуры.

              3. Записать объект номенклатуры.

              Пример кода на встроенном языке 1С:

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

              Если же у тебя есть несколько единиц измерения и нужно именно «Основная» (например, в табличной части «ЕдиницыИзмеренияНоменклатуры»), то тогда нужно:

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

              — Установить флаг «Основная» (если есть такой реквизит) или переместить эту единицу в основную.

              Пример для табличной части:

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

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

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

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

                I

                Для платформы 1С:Предприятие версии 8.2.19.130 предпочтительной версией Windows Server будет одна из поддерживаемых в официальных системных требованиях 1С для платформы 8.2. Обычно для 8.2 рекомендуются следующие версии Windows Server:

                — Windows Server 2008 R2 (x64) с установленными всеми актуальными обновлениями;
                — Windows Server 2012 (x64) с актуальными обновлениями;
                — Windows Server 2012 R2 (x64);
                — Windows Server 2016 (x64) — поддерживается, но с оговорками по совместимости, лучше проверить конкретные обновления платформы 1С 8.2.

                Windows Server 2019 и 2022 официально не поддерживаются платформой 8.2, так как эта версия платформы устарела и не рассчитана на новейшие ОС.

                Рекомендация: для стабильной работы 1С 8.2.19.130 лучше использовать Windows Server 2012 R2 или Windows Server 2008 R2, так как они официально поддерживаются и имеют проверенную совместимость.

                Если есть возможность, лучше планировать переход на платформу 8.3, которая поддерживает более новые версии Windows Server (2016, 2019, 2022).

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

                  В 1С:Розница валюта документа продажи (чека) жёстко фиксируется при создании и изменить её в уже проведённом документе нельзя. Вот почему:

                  1. Валюта чека задаётся при открытии смены и формируется на основании настроек кассы и параметров пользователя. Она влияет на расчёты, курсы валют, цены и налоги.

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

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

                  Если нужно работать с другой валютой, то:

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

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

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

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

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

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

                  Рекомендую посмотреть здесь:
                  https://infostart.ru/public/348852/ (про особенности работы с валютой в 1С)
                  https://helpf.pro/faq/view/354.html (работа с курсами валют)

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

                    Как исправить ошибку "Дублирование имени объекта метаданных" при обновлении 1С?

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

                    Что делать:

                    1. **Проверка и исправление метаданных вручную:**

                    — Выгрузите текущую конфигурацию в XML (через конфигуратор — «Выгрузить конфигурацию в файлы»).
                    — Найдите в папке выгрузки объекты, упомянутые в ошибках (например, РегистрНакопления.УдалитьПрочиеДоходы).
                    — Проверьте, нет ли в папке дублирующихся файлов или внутри файлов дублирующихся определений реквизитов, измерений, ресурсов с одинаковыми именами.
                    — Если дубли есть — удалите или переименуйте их, чтобы имена были уникальны.
                    — Особое внимание уделите вложенным элементам: Ресурс, Реквизит, Измерение.
                    — Проверьте файл ConfigDumpInfo.xml — там тоже могут быть дубли по UUID или именам.

                    2. **Сравнение конфигурации базы и основной конфигурации:**

                    — Выгрузите конфигурацию из базы (текущую) и из основного файла конфигурации (обновления).
                    — Сравните их с помощью внешних инструментов (например, Beyond Compare) или средствами 1С.
                    — Найдите объекты с одинаковыми именами, которые конфликтуют.
                    — Внесите исправления в XML-файлы, чтобы устранить дубли.

                    3. **Использование штатных средств 1С:**

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

                    4. **Если обновление невозможно из-за критических ошибок:**

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

                    5. **Профилактика:**

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

                    В вашем случае, судя по сообщению, дублируются имена реквизитов и ресурсов в регистре накопления «УдалитьПрочиеДоходы». Нужно проверить именно этот регистр в XML-выгрузке и устранить дубли.

                    Если нужна помощь с конкретным исправлением XML — могу помочь с примером правок.

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

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

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

                      1. Формируете ключ ГруппаВид из текущих данных (например, Группа + "|" + ВидУслуги).
                      2. Пытаетесь найти строку в таблице итогов по виду услуги по этому ключу.
                      3. Если не нашли — добавляете новую строку и инициализируете поля.
                      4. Накопляете суммы в найденной/созданной строке.

                      ### Пример кода (фрагмент):

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

                      — Таблица ТаблицаИтоговВидУслуги должна быть создана заранее с колонками:

                      — Используйте составной ключ ГруппаВид для поиска строки, чтобы не было конфликтов.

                      Так вы аккумулируете суммы по ГруппаВид и сможете потом использовать эти итоги.

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

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

                        1. В запрос добавить выборку и группировку по виду услуги (например, по полю ВидУслуги или аналогичному).
                        2. В коде обработки результата добавить накопление итогов по виду услуги.
                        3. В итоговой таблице добавить колонку для вида услуги.
                        4. В цикле заполнения итоговой таблицы по группам учитывать и вид услуги.

                        ### Пример модификации:

                        #### 1. В запросе

                        В запросе нужно добавить поле вида услуги (например, ВидУслуги) в выборку и в группировку.

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

                        Пример (добавить в выборку и группировку):

                        И в конце запроса добавить в ГРУППИРОВАТЬ ПО:

                        Если поле называется иначе — подставьте правильное имя.

                        #### 2. В коде обработки результата

                        Добавьте колонку ВидУслуги в таблицу УслугиРаспределенныеПоГруппам:

                        #### 3. При обработке выборки

                        В цикле, где вы проходите по ВыборкаДетальныеЗаписи, вместо группировки только по ГруппаСубконто.Группа группируйте по составному ключу — по группе и виду услуги.

                        Для этого можно сформировать ключ, например:

                        И искать строку по этому ключу:

                        Если колонки ГруппаВид нет — создайте её:

                        При добавлении новой строки:

                        #### 4. При заполнении итоговой таблицы объекта

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

                        ### Итоговый пример фрагмента кода:

                        ### Кратко:

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

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

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

                          Если нужно в переменную Группа записать результат поиска либо в ГруппаУслуг, либо в ГруппаТоваров (т.е. если ГруппаУслуг не пустое/не Неопределено, то взять его, иначе взять ГруппаТоваров), то делайте так:

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

                          Если Таблица.Найти возвращает строку таблицы, то Группа будет эта строка. Если нужно конкретное поле из найденной строки, например "Группа", то:

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

                          Так будет корректно и понятно.

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

                            В 1С передать массив из одной серверной процедуры в другую очень просто — достаточно передать его как параметр.

                            Пример:

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

                            Если процедуры в разных модулях, то:

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

                            Если массив очень большой и есть сомнения по производительности, можно использовать ВременноеХранилище:

                            А в Процедура2:

                            В общем, передача массива — это просто передача параметра процедуры.

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

                              В Excel дата в формате «1 июня 2026 г.» — это строка с русским названием месяца, а 1С не умеет напрямую преобразовывать такие строки в дату через стандартную функцию Дата() или Формат(). Нужно сделать разбор строки и преобразовать название месяца в номер месяца, а потом собрать дату.

                              Пример функции на 1С, которая преобразует строку вида «1 июня 2026 г.» в дату:

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

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

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

                              Рекомендую использовать именно такой разбор, потому что 1С не умеет напрямую парсить русские названия месяцев в дате.
                              https://helpf.pro/faq8/view/1686.html

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

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

                                Если в вашей конфигурации 1С или в сценариях администрирования требуется Python, его нужно устанавливать отдельно через пакетный менеджер вашей Linux-системы (например, apt для Ubuntu/Debian или yum/dnf для CentOS/Fedora). Обычно для современных систем рекомендуется использовать Python версии 3.x, так как Python 2.x уже не поддерживается.

                                Таким образом:

                                — Python не входит в состав стандартного сервера 1С и не устанавливается автоматически.
                                — Если нужен Python, его следует установить отдельно.
                                — Рекомендуется использовать актуальную версию Python 3.x, например, Python 3.8 и выше, в зависимости от вашей ОС.

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

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

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

                                  Чтобы часы работы 1 мая учитывались в зарплате, нужно в табеле заменить код «ПН» на код, который отражает именно работу в праздничный день. В типовых конфигурациях 1С ЗУП обычно используются такие коды:

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

                                  Если оставить «ПН», программа считает, что сотрудник не работал, и часы не учитываются.

                                  Что сделать:

                                  1. В табеле заменить «ПН» на «РВ» (или аналогичный код работы в праздник).
                                  2. Пересчитать начисление зарплаты.
                                  3. Убедиться, что в настройках начислений есть вид оплаты работы в праздничные дни.
                                  4. Проверить, что 1 мая в производственном календаре отмечен как праздничный день.

                                  Если в вашей конфигурации нет кода «РВ» или он не работает, посмотрите в справочнике «Коды табеля» или в настройках табеля, какой код отвечает за работу в праздник.

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

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

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