Odin — Одинэсник

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

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

      Ошибка проверки данных XDTO с сообщением о несоответствии фасету MaxLength = ‘255’ возникает потому, что в одном из полей XML-документа, который передается для подписи, содержится строка, длина которой превышает максимально допустимое ограничение в 255 символов.

      В вашем примере значение поля:

      имеет длину, превышающую 255 символов, что не соответствует ограничению фасета (ограничения по длине строки), установленному в XDTO-схеме.

      Причины возникновения ошибки:

      1. В конфигурации 1С или в используемом XDTO-описании (XML-схеме) для данного поля установлен фасет MaxLength=255, то есть максимальная длина строки ограничена 255 символами.

      2. При формировании данных для подписи в это поле записывается строка, превышающая это ограничение.

      3. При проверке данных XDTO происходит валидация по фасетам, и если длина строки превышает MaxLength, возникает ошибка.

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

      — Укоротить значение поля, чтобы оно не превышало 255 символов.

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

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

      — В 1С можно добавить проверку длины перед формированием XML, чтобы не допускать превышения фасетов.

      Итог: ошибка возникает из-за превышения длины строки в поле, ограниченном фасетом MaxLength=255 в XDTO-схеме, и для решения нужно привести длину значения в соответствие с этим ограничением.

      Рекомендую посмотреть здесь: https://infostart.ru/public/412202/ (пример с ограничениями по длине в регистрах и индексах, аналогично работает и в XDTO)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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