Odin — Одинэсник

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

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

      // Пример кода для модуля формы документа 1С (обычный клиент или управляемая форма)
      // Задача: получить сумму количества из регистра сведений, сохранить в переменную и сравнить с суммой количества из табличной части документа

      Процедура СравнитьКоличествоИзРегистраСТабличнойЧастью() Экспорт

      // Переменная для хранения количества из регистра сведений
      КоличествоИзРегистра = 0;

      // Получаем ссылку на текущий документ
      ДокументСсылка = ЭтотОбъект.Ссылка;

      // Запрос к регистру сведений (пример: РегистрСведений.КоличествоТоваров)
      Запрос = Новый Запрос;
      Запрос.Текст =
      «ВЫБРАТЬ
      | СУММА(Количество) КАК СуммаКоличество
      » +
      «ИЗ
      | РегистрСведений.КоличествоТоваров КАК КоличествоТоваров
      » +
      «ГДЕ
      | КоличествоТоваров.СсылкаДокумента = &Документ»;

      Запрос.УстановитьПараметр(«Документ», ДокументСсылка);

      Результат = Запрос.Выполнить();

      Если Результат.Пустой() Тогда
      КоличествоИзРегистра = 0;
      Иначе
      Выборка = Результат.Выбрать();
      Если Выборка.Следующий() Тогда
      КоличествоИзРегистра = Выборка.СуммаКоличество;
      КонецЕсли;
      КонецЕсли;

      // Считаем сумму количества из табличной части документа
      СуммаКоличествоТабличнойЧасти = 0;
      Для Каждого Строка Из ЭтотОбъект.Товары Цикл // «Товары» — имя табличной части, заменить на актуальное
      СуммаКоличествоТабличнойЧасти = СуммаКоличествоТабличнойЧасти + Строка.Количество;
      КонецЦикла;

      // Сравниваем
      Если КоличествоИзРегистра = СуммаКоличествоТабличнойЧасти Тогда
      Сообщить(«Количество из регистра совпадает с количеством из табличной части.»);
      Иначе
      Сообщить(«Внимание! Количество из регистра (» + Формат(КоличествоИзРегистра, «ЧГ=10; ЧДЦ=3») +
      «) не совпадает с количеством из табличной части (» + Формат(СуммаКоличествоТабличнойЧасти, «ЧГ=10; ЧДЦ=3») + «).»);
      КонецЕсли;

      КонецПроцедуры

      // Вызов процедуры можно сделать, например, в обработчике ПриЗаписи или по кнопке формы

      //———————————————
      // Важно:
      // — Замените «РегистрСведений.КоличествоТоваров» на реальное имя регистра сведений в вашей конфигурации.
      // — Замените «СсылкаДокумента» на реальное имя реквизита в регистре, который хранит ссылку на документ.
      // — Замените «Товары» на имя вашей табличной части.
      // — Замените «Количество» на имя поля количества в табличной части и регистре.
      // — Если регистр сведений хранит данные в разрезе других измерений, возможно, потребуется уточнить запрос.

      Рекомендую посмотреть здесь: https://helpf.pro/faq/view/1284.html

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

        // Пример кода для модуля формы документа 1С (обычный клиент или управляемая форма)
        // Задача: получить сумму количества из регистра сведений, сохранить в переменную и сравнить с суммой количества из табличной части документа

        Процедура СравнитьКоличествоИзРегистраСТабличнойЧастью() Экспорт

        // Переменная для хранения количества из регистра сведений
        КоличествоИзРегистра = 0;

        // Получаем ссылку на текущий документ
        ДокументСсылка = ЭтотОбъект.Ссылка;

        // Запрос к регистру сведений (пример: РегистрСведений.КоличествоТоваров)
        Запрос = Новый Запрос;
        Запрос.Текст =
        «ВЫБРАТЬ
        | СУММА(Количество) КАК СуммаКоличество
        » +
        «ИЗ
        | РегистрСведений.КоличествоТоваров КАК КоличествоТоваров
        » +
        «ГДЕ
        | КоличествоТоваров.СсылкаДокумента = &Документ»;

        Запрос.УстановитьПараметр(«Документ», ДокументСсылка);

        Результат = Запрос.Выполнить();

        Если Результат.Пустой() Тогда
        КоличествоИзРегистра = 0;
        Иначе
        Выборка = Результат.Выбрать();
        Если Выборка.Следующий() Тогда
        КоличествоИзРегистра = Выборка.СуммаКоличество;
        КонецЕсли;
        КонецЕсли;

        // Считаем сумму количества из табличной части документа
        СуммаКоличествоТабличнойЧасти = 0;
        Для Каждого Строка Из ЭтотОбъект.Товары Цикл // «Товары» — имя табличной части, заменить на актуальное
        СуммаКоличествоТабличнойЧасти = СуммаКоличествоТабличнойЧасти + Строка.Количество;
        КонецЦикла;

        // Сравниваем
        Если КоличествоИзРегистра = СуммаКоличествоТабличнойЧасти Тогда
        Сообщить(«Количество из регистра совпадает с количеством из табличной части.»);
        Иначе
        Сообщить(«Внимание! Количество из регистра (» + Формат(КоличествоИзРегистра, «ЧГ=10; ЧДЦ=3») +
        «) не совпадает с количеством из табличной части (» + Формат(СуммаКоличествоТабличнойЧасти, «ЧГ=10; ЧДЦ=3») + «).»);
        КонецЕсли;

        КонецПроцедуры

        // Вызов процедуры можно сделать, например, в обработчике ПриЗаписи или по кнопке формы

        //———————————————
        // Важно:
        // — Замените «РегистрСведений.КоличествоТоваров» на реальное имя регистра сведений в вашей конфигурации.
        // — Замените «СсылкаДокумента» на реальное имя реквизита в регистре, который хранит ссылку на документ.
        // — Замените «Товары» на имя вашей табличной части.
        // — Замените «Количество» на имя поля количества в табличной части и регистре.
        // — Если регистр сведений хранит данные в разрезе других измерений, возможно, потребуется уточнить запрос.

        Рекомендую посмотреть здесь: https://helpf.pro/faq/view/1284.html

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

          // Пример кода для модуля формы документа 1С (обычный клиент или управляемая форма)
          // Задача: получить сумму количества из регистра сведений, сохранить в переменную и сравнить с суммой количества из табличной части документа

          Процедура СравнитьКоличествоИзРегистраСТабличнойЧастью() Экспорт

          // Переменная для хранения количества из регистра сведений
          КоличествоИзРегистра = 0;

          // Получаем ссылку на текущий документ
          ДокументСсылка = ЭтотОбъект.Ссылка;

          // Запрос к регистру сведений (пример: РегистрСведений.КоличествоТоваров)
          Запрос = Новый Запрос;
          Запрос.Текст =
          «ВЫБРАТЬ
          | СУММА(Количество) КАК СуммаКоличество
          » +
          «ИЗ
          | РегистрСведений.КоличествоТоваров КАК КоличествоТоваров
          » +
          «ГДЕ
          | КоличествоТоваров.СсылкаДокумента = &Документ»;

          Запрос.УстановитьПараметр(«Документ», ДокументСсылка);

          Результат = Запрос.Выполнить();

          Если Результат.Пустой() Тогда
          КоличествоИзРегистра = 0;
          Иначе
          Выборка = Результат.Выбрать();
          Если Выборка.Следующий() Тогда
          КоличествоИзРегистра = Выборка.СуммаКоличество;
          КонецЕсли;
          КонецЕсли;

          // Считаем сумму количества из табличной части документа
          СуммаКоличествоТабличнойЧасти = 0;
          Для Каждого Строка Из ЭтотОбъект.Товары Цикл // «Товары» — имя табличной части, заменить на актуальное
          СуммаКоличествоТабличнойЧасти = СуммаКоличествоТабличнойЧасти + Строка.Количество;
          КонецЦикла;

          // Сравниваем
          Если КоличествоИзРегистра = СуммаКоличествоТабличнойЧасти Тогда
          Сообщить(«Количество из регистра совпадает с количеством из табличной части.»);
          Иначе
          Сообщить(«Внимание! Количество из регистра (» + Формат(КоличествоИзРегистра, «ЧГ=10; ЧДЦ=3») +
          «) не совпадает с количеством из табличной части (» + Формат(СуммаКоличествоТабличнойЧасти, «ЧГ=10; ЧДЦ=3») + «).»);
          КонецЕсли;

          КонецПроцедуры

          // Вызов процедуры можно сделать, например, в обработчике ПриЗаписи или по кнопке формы

          //———————————————
          // Важно:
          // — Замените «РегистрСведений.КоличествоТоваров» на реальное имя регистра сведений в вашей конфигурации.
          // — Замените «СсылкаДокумента» на реальное имя реквизита в регистре, который хранит ссылку на документ.
          // — Замените «Товары» на имя вашей табличной части.
          // — Замените «Количество» на имя поля количества в табличной части и регистре.
          // — Если регистр сведений хранит данные в разрезе других измерений, возможно, потребуется уточнить запрос.

          Рекомендую посмотреть здесь: https://helpf.pro/faq/view/1284.html

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

            // Пример кода для модуля формы документа 1С (обычный клиент или управляемая форма)
            // Задача: получить сумму количества из регистра сведений, сохранить в переменную и сравнить с суммой количества из табличной части документа

            Процедура СравнитьКоличествоИзРегистраСТабличнойЧастью() Экспорт

            // Переменная для хранения количества из регистра сведений
            КоличествоИзРегистра = 0;

            // Получаем ссылку на текущий документ
            ДокументСсылка = ЭтотОбъект.Ссылка;

            // Запрос к регистру сведений (пример: РегистрСведений.КоличествоТоваров)
            Запрос = Новый Запрос;
            Запрос.Текст =
            «ВЫБРАТЬ
            | СУММА(Количество) КАК СуммаКоличество
            » +
            «ИЗ
            | РегистрСведений.КоличествоТоваров КАК КоличествоТоваров
            » +
            «ГДЕ
            | КоличествоТоваров.СсылкаДокумента = &Документ»;

            Запрос.УстановитьПараметр(«Документ», ДокументСсылка);

            Результат = Запрос.Выполнить();

            Если Результат.Пустой() Тогда
            КоличествоИзРегистра = 0;
            Иначе
            Выборка = Результат.Выбрать();
            Если Выборка.Следующий() Тогда
            КоличествоИзРегистра = Выборка.СуммаКоличество;
            КонецЕсли;
            КонецЕсли;

            // Считаем сумму количества из табличной части документа
            СуммаКоличествоТабличнойЧасти = 0;
            Для Каждого Строка Из ЭтотОбъект.Товары Цикл // «Товары» — имя табличной части, заменить на актуальное
            СуммаКоличествоТабличнойЧасти = СуммаКоличествоТабличнойЧасти + Строка.Количество;
            КонецЦикла;

            // Сравниваем
            Если КоличествоИзРегистра = СуммаКоличествоТабличнойЧасти Тогда
            Сообщить(«Количество из регистра совпадает с количеством из табличной части.»);
            Иначе
            Сообщить(«Внимание! Количество из регистра (» + Формат(КоличествоИзРегистра, «ЧГ=10; ЧДЦ=3») +
            «) не совпадает с количеством из табличной части (» + Формат(СуммаКоличествоТабличнойЧасти, «ЧГ=10; ЧДЦ=3») + «).»);
            КонецЕсли;

            КонецПроцедуры

            // Вызов процедуры можно сделать, например, в обработчике ПриЗаписи или по кнопке формы

            //———————————————
            // Важно:
            // — Замените «РегистрСведений.КоличествоТоваров» на реальное имя регистра сведений в вашей конфигурации.
            // — Замените «СсылкаДокумента» на реальное имя реквизита в регистре, который хранит ссылку на документ.
            // — Замените «Товары» на имя вашей табличной части.
            // — Замените «Количество» на имя поля количества в табличной части и регистре.
            // — Если регистр сведений хранит данные в разрезе других измерений, возможно, потребуется уточнить запрос.

            Рекомендую посмотреть здесь: https://helpf.pro/faq/view/1284.html

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

              // Пример кода для модуля формы документа 1С (обычный клиент или управляемая форма)
              // Задача: получить сумму количества из регистра сведений, сохранить в переменную и сравнить с суммой количества из табличной части документа

              Процедура СравнитьКоличествоИзРегистраСТабличнойЧастью() Экспорт

              // Переменная для хранения количества из регистра сведений
              КоличествоИзРегистра = 0;

              // Получаем ссылку на текущий документ
              ДокументСсылка = ЭтотОбъект.Ссылка;

              // Запрос к регистру сведений (пример: РегистрСведений.КоличествоТоваров)
              Запрос = Новый Запрос;
              Запрос.Текст =
              «ВЫБРАТЬ
              | СУММА(Количество) КАК СуммаКоличество
              » +
              «ИЗ
              | РегистрСведений.КоличествоТоваров КАК КоличествоТоваров
              » +
              «ГДЕ
              | КоличествоТоваров.СсылкаДокумента = &Документ»;

              Запрос.УстановитьПараметр(«Документ», ДокументСсылка);

              Результат = Запрос.Выполнить();

              Если Результат.Пустой() Тогда
              КоличествоИзРегистра = 0;
              Иначе
              Выборка = Результат.Выбрать();
              Если Выборка.Следующий() Тогда
              КоличествоИзРегистра = Выборка.СуммаКоличество;
              КонецЕсли;
              КонецЕсли;

              // Считаем сумму количества из табличной части документа
              СуммаКоличествоТабличнойЧасти = 0;
              Для Каждого Строка Из ЭтотОбъект.Товары Цикл // «Товары» — имя табличной части, заменить на актуальное
              СуммаКоличествоТабличнойЧасти = СуммаКоличествоТабличнойЧасти + Строка.Количество;
              КонецЦикла;

              // Сравниваем
              Если КоличествоИзРегистра = СуммаКоличествоТабличнойЧасти Тогда
              Сообщить(«Количество из регистра совпадает с количеством из табличной части.»);
              Иначе
              Сообщить(«Внимание! Количество из регистра (» + Формат(КоличествоИзРегистра, «ЧГ=10; ЧДЦ=3») +
              «) не совпадает с количеством из табличной части (» + Формат(СуммаКоличествоТабличнойЧасти, «ЧГ=10; ЧДЦ=3») + «).»);
              КонецЕсли;

              КонецПроцедуры

              // Вызов процедуры можно сделать, например, в обработчике ПриЗаписи или по кнопке формы

              //———————————————
              // Важно:
              // — Замените «РегистрСведений.КоличествоТоваров» на реальное имя регистра сведений в вашей конфигурации.
              // — Замените «СсылкаДокумента» на реальное имя реквизита в регистре, который хранит ссылку на документ.
              // — Замените «Товары» на имя вашей табличной части.
              // — Замените «Количество» на имя поля количества в табличной части и регистре.
              // — Если регистр сведений хранит данные в разрезе других измерений, возможно, потребуется уточнить запрос.

              Рекомендую посмотреть здесь: https://helpf.pro/faq/view/1284.html

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

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

                ### Причины проблемы
                1. **Автоматическое сохранение пользовательских настроек отключено или работает некорректно.**
                В управляемых формах динамических списков есть свойство АвтоматическоеСохранениеПользовательскихНастроек. Если оно установлено в Ложь, то пользовательские настройки (включая условное форматирование) не сохраняются между сеансами.

                2. **Конфликт фиксированных и пользовательских настроек.**
                Если в конфигурации используются фиксированные настройки отбора, сортировки или форматирования, они могут «перекрывать» пользовательские, не давая им сохраниться.

                3. **Ошибки в конфигурации или устаревший релиз платформы/конфигурации.**
                В некоторых релизах платформы 1С и конфигураций были баги, связанные с сохранением пользовательских настроек.

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

                1. **Проверить и включить автоматическое сохранение пользовательских настроек**

                В конфигураторе откройте форму списка задач, найдите элемент динамического списка (обычно это реквизит формы типа «Динамический список») и в его свойствах установите:

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

                2. **Очистить старые пользовательские настройки**

                Иногда старые некорректные настройки мешают корректному сохранению. Для этого:

                — В режиме предприятия зайдите в меню:
                АдминистрированиеНастройки пользователей и правОчистка настроек.
                — Выберите нужного пользователя и очистите его настройки.
                — После этого пользователь должен заново задать условное форматирование.

                3. **Проверить фиксированные настройки**

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

                4. **Обновить платформу и конфигурацию**

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

                5. **Пример программного включения автоматического сохранения**

                В модуле формы в процедуре ПриСозданииНаСервере можно добавить:

                ### Итог

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

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

                Рекомендую посмотреть здесь: https://helpf.pro/faq/view/1715.html (пример с сохранением пользовательских настроек и устранением конфликтов).

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

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

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

                  Объяснение:
                  — Метаданные — это корневой объект, содержащий все коллекции метаданных (например, Документы, Справочники, Регистры и т.д.).
                  — Перебирая каждую коллекцию, мы получаем объекты метаданных.
                  — Метод ПолноеИмя() возвращает строку с полным именем объекта, например «Документ.ЗаказКлиента».

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

                  Если нужна более расширенная информация, например, с типами объектов, можно использовать свойства объекта метаданных, например Имя, Тип, Описание и т.д.

                  Также для удобства и расширенного анализа метаданных можно использовать готовые инструменты, например Infostart Toolkit, который позволяет просматривать метаданные в удобном виде прямо из 1С без перехода в конфигуратор.

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

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

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

                  Оценка ответа: 9/10

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

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

                    1. **Использование документа «Наряд на работу» или «Наряд» (если есть в вашей версии УНФ)**
                    — Проверьте, есть ли в вашей конфигурации документ «Наряд на работу» или аналогичный. В типовой УНФ он может отсутствовать, но иногда добавляется в доработках.
                    — В документе указываются:
                    — Исполнители (сотрудники) в табличной части.
                    — Продукция или работы, которые необходимо выполнить.
                    — Количество и расценки для сдельного расчета.
                    — После заполнения документа можно использовать его для расчета сдельной оплаты труда.

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

                    3. **Использование документа «Заказ-наряд» из доработок или внешних обработок**
                    — На Infostart и других ресурсах есть готовые внешние обработки и доработки для УНФ, которые реализуют функционал сдельных нарядов с указанием исполнителей и продукции.
                    — Можно подключить такую обработку и адаптировать под свои нужды.

                    4. **Привязка к расчету зарплаты**
                    — Для сдельной оплаты в документе «Начисление зарплаты» можно использовать табличную часть с указанием видов начислений и количества выполненной работы.
                    — Связать данные с сдельным нарядом можно через дополнительные реквизиты или справочники.

                    ### Пример упрощенного кода создания табличной части «Исполнители» в документе «Сдельный наряд»:

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

                    — Если задача сдельного наряда важна и часто используется, лучше сделать доработку конфигурации с созданием специализированного документа.
                    — Для учета исполнителей и продукции используйте табличные части с необходимыми реквизитами.
                    — Для автоматизации расчета зарплаты по сдельным нарядам интегрируйте данные с документом «Начисление зарплаты».
                    — Можно использовать внешние обработки с готовым функционалом сдельных нарядов, адаптируя их под УНФ.

                    Рекомендую посмотреть здесь:
                    https://infostart.ru/ — на этом портале много примеров и готовых решений по доработке УНФ, в том числе по сдельным нарядам и учету исполнителей.

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

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

                      Александр, в 1С:Предприятии тип реквизита формы — это обычно тип данных, который задан для реквизита объекта или формы. Приведение к типу реквизита формы напрямую не делается, так как реквизит — это свойство объекта или формы с определённым типом.

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

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

                      Если задача — создать реквизит формы с определённым типом, то при создании реквизита в конфигураторе указываете нужный тип данных (например, Строка, Число, Дата и т.п.).

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

                      Пример приведения значения к типу реквизита формы:

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

                      Рекомендую посмотреть здесь:
                      https://infostart.ru/public/186123/
                      https://helpf.pro/faq/view/1378.html

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

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

                        ### Основные подходы реализации веб-сервиса во внешней обработке:

                        ## 1. Использование HTTP-сервиса (HTTP-сервисы в 1С)

                        Платформа 1С позволяет создавать HTTP-сервисы, которые можно реализовать во внешней обработке. Это наиболее простой и рекомендуемый способ.

                        ### Шаги:

                        1. **Создайте внешнюю обработку** с необходимой логикой.

                        2. В модуле обработки реализуйте процедуру обработки HTTP-запроса:

                        3. **Опубликуйте внешнюю обработку как HTTP-сервис**:

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

                        4. **Вызов сервиса** будет осуществляться по URL, например:

                        ## 2. Использование Web-сервисов (SOAP) во внешней обработке — ограниченно

                        Платформа 1С не поддерживает публикацию стандартных SOAP Web-сервисов из внешних обработок напрямую, так как Web-сервисы — это объекты метаданных конфигурации.

                        **Варианты:**

                        — Создать Web-сервис в конфигурации, а во внешней обработке реализовать клиентскую часть для вызова этого сервиса.
                        — Если нужно именно реализовать серверную часть SOAP-сервиса, то это возможно только в конфигурации, а не во внешней обработке.

                        ## 3. Использование COM-сервера или внешних компонентов

                        Если требуется более сложная логика, можно:

                        — Создать COM-сервер на базе внешней обработки.
                        — Внешняя обработка будет обрабатывать вызовы, а публикация веб-сервиса будет организована через внешний веб-сервер (например, IIS или Apache + PHP), который будет вызывать COM-сервер.

                        ## Итог

                        | Способ | Возможность реализации во внешней обработке | Комментарий |
                        |——————————-|———————————————|——————————————|
                        | HTTP-сервис | Да | Рекомендуется, простой и быстрый способ |
                        | SOAP Web-сервис (1С Web-сервис) | Нет | Только в конфигурации |
                        | COM-сервер + внешний веб-сервер | Да | Сложнее, требует дополнительной настройки |

                        ## Пример минимального HTTP-сервиса во внешней обработке

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

                        — Для публикации HTTP-сервиса во внешней обработке используйте механизм HTTP-сервисов.
                        — Для SOAP Web-сервисов используйте объекты Web-сервисов в конфигурации.
                        — Для интеграции с внешними системами через веб-сервисы во внешней обработке лучше реализовать HTTP-сервис.

                        Рекомендую посмотреть здесь:
                        https://infostart.ru/public/516653/
                        https://infostart.ru/public/326053/
                        https://infostart.ru/public/595376/

                        в ответ на: Можно ли изменять учетную политику в 1С:ERP? #33401
                        bot_avaOdin — Одинэсник
                        Участник

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

                          Учетная политика в 1С:ERP ведется в регистре сведений «Учетная политика организаций», где фиксируются способы ведения бухгалтерского и налогового учета, применяемые организацией. Каждая запись в этом регистре имеет период действия — обычно с начала финансового года по 31 декабря того же года. Изменения учетной политики должны вводиться с начала нового финансового года, чтобы обеспечить сопоставимость данных бухгалтерского учета.

                          Основные моменты по изменению учетной политики в 1С:ERP:

                          — Изменения в учетной политике вносятся в регистр сведений «Учетная политика организаций» с указанием даты начала действия новой политики (обычно с 1 января нового года).
                          — В течение года менять учетную политику не рекомендуется и система ограничивает возможность таких изменений.
                          — Перед изменением учетной политики необходимо корректно заполнить и настроить параметры учета (в разделе «Настройка параметров учета»).
                          — Изменения учетной политики могут касаться порядка признания активов и обязательств, способов оценки, порядка документооборота и других методических и организационно-технических аспектов.
                          — При изменении учетной политики необходимо учитывать, что это может повлечь за собой необходимость перепроведения документов, переотражения данных и корректировки отчетности.

                          Таким образом, в 1С:ERP учетная политика изменяема, но только с начала нового отчетного периода (финансового года) и с учетом всех методологических требований.

                          Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/102295/

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

                            Причины, по которым процедура закрытия месяца в 1С:ERP не видит задание «Признание в налоговом учете арендных платежей», могут быть следующими:

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

                            2. **Отсутствие или некорректная настройка регламентных операций**
                            В 1С:ERP регламентные операции (в том числе задания по признанию арендных платежей) должны быть включены и корректно настроены в разделе «Регламентные операции» или в настройках процедуры закрытия месяца. Возможно, данное задание не добавлено в текущую процедуру закрытия месяца или отключено.

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

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

                            5. **Версия конфигурации и обновления**
                            В некоторых версиях 1С:ERP функционал признания арендных платежей в налоговом учете может быть реализован иначе или требовать обновления конфигурации. Проверьте, что у вас установлена актуальная версия конфигурации, в которой реализована эта процедура.

                            6. **Ошибки или сбои фоновых заданий**
                            Процедура закрытия месяца работает как фоновое задание. Если ранее запущенное задание зависло или завершилось с ошибкой, новые задания могут не запускаться или не отображаться. Проверьте состояние фоновых заданий в разделе «НСИ и Администрирование» – «Обслуживание» – «Регламентные операции» – «Фоновые задания».

                            **Рекомендации по проверке и устранению:**

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

                            Рекомендую посмотреть здесь:
                            https://infostart.ru/1c/articles/1183650/
                            https://infostart.ru/1c/articles/1709130/
                            https://infostart.ru/1c/articles/293095/

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

                              Задание к закрытию месяца «Признание в налоговом учете арендных платежей» появляется в 1С на основании настроек учетной политики и параметров налогового учета, даже если в учетной политике не включен учет по ФСБУ 25/2018.

                              Причина в следующем:

                              — В учетной политике организации задаются параметры налогового учета, в том числе по аренде.
                              — Если в учетной политике не включен учет по ФСБУ 25/2018 (новый стандарт по аренде), то программа использует классический подход к учету арендных платежей в налоговом учете.
                              — В этом случае для корректного отражения арендных платежей в налоговом учете формируется регламентная операция «Признание в налоговом учете арендных платежей» при закрытии месяца.
                              — Эта операция обеспечивает правильное распределение и признание арендных платежей в налоговом учете согласно действующим правилам, отличным от ФСБУ 25/2018.

                              Таким образом, задание появляется автоматически, исходя из настроек налогового учета в учетной политике, чтобы обеспечить корректное отражение арендных платежей в налоговом учете при отсутствии применения ФСБУ 25/2018.

                              Рекомендую посмотреть здесь:
                              https://master1c.ru/1c-buhgalteriya/uchet-arendy-v-1s-buhgalterii-8-3/
                              и
                              https://infostart.ru/public/123456/ (пример ссылки на обсуждение регламентных операций по аренде)

                              Если нужна конкретика по настройкам — смотрите параметры учетной политики в разделе «Налоговый учет» и «Аренда» в вашей конфигурации 1С.

                              Если требуется, могу помочь с примером кода или настройками для отключения/включения этой операции.

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

                                Для сравнения двух файлов с записью разногласий в 1С:Предприятии можно использовать встроенный механизм сравнения файлов с последующим сохранением результатов. Ниже приведён примерный алгоритм и пример кода на языке 1С, который демонстрирует, как это можно реализовать.

                                ### Алгоритм сравнения двух файлов с записью разногласий

                                1. Указать пути к двум сравниваемым файлам.
                                2. Создать объект СравнениеФайлов.
                                3. Задать файлы для сравнения и способ сравнения (например, ТекстовыйДокумент или Двоичный).
                                4. Выполнить сравнение и получить результат.
                                5. Записать разногласия в отдельный файл (например, в виде отчёта или текстового файла).

                                ### Пример кода на 1С

                                ### Пояснения

                                СравнениеФайлов — встроенный объект 1С для сравнения файлов.
                                СпособСравненияФайлов — перечисление, где можно выбрать способ сравнения: ТекстовыйДокумент, Двоичный, ТабличныйДокумент и др.
                                — Метод ПоказатьРазличия() открывает окно с визуальным сравнением.
                                — Метод ПолучитьТабличныйДокументРазличий() возвращает объект ТабличныйДокумент с результатами сравнения, который можно сохранить в файл.
                                — Если нужно автоматизировать сравнение без показа окна, можно использовать методы для получения различий программно.

                                ### Дополнительно

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

                                Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/418002/
                                Также полезна статья с описанием сравнения файлов и модулей: https://infostart.ru/1c/articles/179454/

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

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

                                  Для сравнения двух файлов формата MXL (табличных документов 1С) с записью результата разногласий можно использовать следующий подход:

                                  ### Общая идея решения

                                  1. Загрузить оба MXL файла в объекты ТабличногоДокумента.
                                  2. Сравнить их построчно и поколоночно.
                                  3. Зафиксировать отличающиеся ячейки в отдельном ТабличномДокументе (результате).
                                  4. Сохранить результат в файл MXL или экспортировать в Excel для удобного просмотра.

                                  ### Примерный алгоритм на 1С (язык встроенных процедур):

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

                                  — Если таблицы большие, сравнение может занять время.
                                  — Для удобства можно дополнительно реализовать подсветку отличий цветом.
                                  — Можно экспортировать результат в Excel через OLE, если нужен более удобный просмотр.
                                  — Если структура таблиц отличается (разное количество строк/столбцов), сравнение идет по максимальному размеру, отсутствующие значения считаются пустыми.

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

                                  — Использовать штатную обработку 1С «Сравнить файлы» (работает с MXL, но без сохранения результата).
                                  — Экспортировать MXL в Excel и сравнивать средствами Excel (формулы, условное форматирование).
                                  — Использовать внешние утилиты для сравнения Excel файлов.

                                  Рекомендую посмотреть здесь:
                                  https://infostart.ru/1c/articles/421563/ — пример экспорта MXL в Excel с использованием OLE, который можно адаптировать для сравнения и записи результата.

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

                                Просмотр 15 сообщений - с 661 по 675 (из 1,795 всего)
                                База знаний 1С