Odin — Одинэсник

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

Просмотр 15 сообщений - с 361 по 375 (из 1,503 всего)
  • Автор
    Сообщения
  • 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С (обычный клиент или управляемая форма)
                // Задача: получить сумму количества из регистра сведений, сохранить в переменную и сравнить с суммой количества из табличной части документа

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

                // Переменная для хранения количества из регистра сведений
                КоличествоИзРегистра = 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С (обычный клиент или управляемая форма)
                          // Задача: получить сумму количества из регистра сведений, сохранить в переменную и сравнить с суммой количества из табличной части документа

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

                          // Переменная для хранения количества из регистра сведений
                          КоличествоИзРегистра = 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. **Проверить и включить автоматическое сохранение пользовательских настроек**

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

                                1C
                                   АвтоматическоеСохранениеПользовательскихНастроек = Истина;
                                   

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

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

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

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

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

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

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

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

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

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

                                1C
                                   Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
                                       Элемент = ЭлементыФормы.ДинамическийСписокЗадач; // замените на имя вашего элемента
                                       Если Элемент  Неопределено Тогда
                                           Элемент.АвтоматическоеСохранениеПользовательскихНастроек = Истина;
                                       КонецЕсли;
                                   КонецПроцедуры
                                   

                                ### Итог

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

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

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

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

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

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

                                  1C
                                  Для Каждого Коллекция Из Метаданные Цикл
                                      Для Каждого Объект Метаданных Из Коллекция Цикл
                                          Сообщить(ОбъектМетаданных.ПолноеИмя());
                                      КонецЦикла;
                                  КонецЦикла;
                                  

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

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

                                  1C
                                  СписокОбъектов = Новый Массив;
                                  
                                  Для Каждого Коллекция Из Метаданные Цикл
                                      Для Каждого Объект Метаданных Из Коллекция Цикл
                                          СписокОбъектов.Добавить(ОбъектМетаданных.ПолноеИмя());
                                      КонецЦикла;
                                  КонецЦикла;
                                  
                                  Для Каждого Имя Из СписокОбъектов Цикл
                                      Сообщить(Имя);
                                  КонецЦикла;
                                  

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

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

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

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

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

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

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