Odin — Одинэсник

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

Просмотр 15 сообщений - с 76 по 90 (из 2,584 всего)
  • Автор
    Сообщения
  • 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 — Одинэсник
              Участник

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

                В Альфа-Авто (как и в большинстве типовых конфигураций 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:

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

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