Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
13 дек 2024, 20:37

Как реализовать запрос ?

Автор Varg ., 22 мар 2020, 16:48

0 Пользователей и 1 гость просматривают эту тему.

Varg .

Добрый день, помогите есть РегСвед Общий, Спецификация, Оплата.
В Общий содержатся договора каждый со своим номером и при запросе к этому регистру данные выводятся в таблицу ДлВсех, но таблицу нужно дополнить данными из Спецификации и Оплата в них так же попадают данные по каждому отдельному договору единственное как их можно различить по номеру договора. Я реализовал так при клике в таблице значений ДляВсе по Договору во вторую таблицу на форме выводятся все данные именно по нему содержащиеся в РегСвед Спецификация. Здесь всё просто получаю номер договора вставляю его в запрос и по нему делаю выборку данных с одинаковым номером. Но мне нужно также что бы при клике по договору заполнялись и колонки таблицы ДляВсех такие как ОбщаяСумма спецификации то есть туда должна попадать общая сумма всех позиций с номером выбранного договора. Подтверждение оплаты в него должны попадать данные из Оплаты так же соответствующие номеру выбраного договора. Вот как это всё сделать ума не приложу.  :dfbsdfbsdf:

alexandr_ll

Цитата: Varg . от 22 мар 2020, 16:48
Добрый день, помогите есть РегСвед Общий, Спецификация, Оплата.
В Общий содержатся договора каждый со своим номером и при запросе к этому регистру данные выводятся в таблицу ДлВсех, но таблицу нужно дополнить данными из Спецификации и Оплата в них так же попадают данные по каждому отдельному договору единственное как их можно различить по номеру договора. Я реализовал так при клике в таблице значений ДляВсе по Договору во вторую таблицу на форме выводятся все данные именно по нему содержащиеся в РегСвед Спецификация. Здесь всё просто получаю номер договора вставляю его в запрос и по нему делаю выборку данных с одинаковым номером. Но мне нужно также что бы при клике по договору заполнялись и колонки таблицы ДляВсех такие как ОбщаяСумма спецификации то есть туда должна попадать общая сумма всех позиций с номером выбранного договора. Подтверждение оплаты в него должны попадать данные из Оплаты так же соответствующие номеру выбраного договора. Вот как это всё сделать ума не приложу.  :dfbsdfbsdf:
Регистры сведений - периодические или нет, независимые или подчинены регистратору? Договор - вероятно это ссылка на элемент справочника? Тогда зачем искать по номеру - нужно по ссылке. Вообще записи регистров следует привязать к регистратору, тогда ваш запрос будет не нужен, суммы по спецификации и оплате будут отражаться автоматически при проведении первичного документа (регистратора).

Varg .

alexandr_ll, Регистры сведений не периодические подченённые регистратору.
Добавлено: 23 мар 2020, 10:21


alexandr_ll, если честно не совсем понял я вношу данные в регистр сведений где суммы должны отображаться можно пример ?

alexandr_ll

Цитата: Varg . от 23 мар 2020, 10:06
alexandr_ll, Регистры сведений не периодические подченённые регистратору.
Зачем заполнять суммы по клику? Они уже должны быть заполнены при проведении спецификаций и оплаты и при изменении регистраторов будут автоматически актуализироваться.

LexaK

вот примерный план, только правильно свои наименования ресурсов/ реквизитов  подставьте

//расчитываем общие суммы по Договору
Выбрать 
    Рег.Договор,
    Сумма(Рег.Сумма) как СуммаОплаты
поместить ТабОплаты
Из
РегистрСведений.Оплаты Рег
Сгруппировать по
    Рег.Договор
;
Выбрать 
    Рег.Договор,
    Сумма(Рег.Сумма) как СуммаСпец
поместить ТабСпец
Из
РегистрСведений.Спецификация Рег
Сгруппировать по
    Рег.Договор
;
//там где запрос ДляВсе
Выбрать
...
ТабОплаты.СуммаОплаты, //общая сумма Оплаты
ТабСпец.СуммаСпец //общая сумма Спецификации
Из
...
левое соединение ТабОплаты
по РегОбщий.Договор = ТабОплаты.Договор
левое соединение ТабСпец
по РегОбщий.Договор = ТабСпец.Договор

если помогло нажмите: Спасибо!

Varg .

LexaK, Я правильно понял то есть с начало обращаемся РегСвед Спецификация получаем общую Сумму потом к РегСвед Оплата получаем сумма и потом третьим запросом Связваем всё в месте ? Хорошо, но как в первых двух запросах из выбрать данные которые относятся именно к этому договору ?
В Спецификации и Оплате записи содержаться примерно в таком виде.

НомерДоговора   Наименование   Колл-во   ЦенаЗаЕд  ЕдИзмерения Сумма
            1             Таблетки                5            10                 шт           50
            1             Градусники            2             30                шт           60
            2              Молоток                2             5                  шт           10
            2              Гвозди                  5             1                  шт           5

То есть данные с номером договора 1 относятся к договору с номером 1, а с номером 2 к договору 2 вот вот допустим нужна сумма позитций по договору 1 то есть в таблицу ДляВсех в колонку ОбщаяСумма нужно вывести результат сложения 50 + 60 = 110

LexaK

да правильно, в вашем случае вам надо группировать по полю НомерДоговора
(я понимаю что у вас это тестовая база, и договор у вас представлен Номером)
(было бы очень хорошо, если бы вы сразу привыкали ПРАВИЛЬНО работать с 1С,
использовать Ссылки объектов, и разбирались в других типах данных (что, для чего, и как использовать))
(в 1С, это в основном работа с Ссылочными объектами, связь между документами, регистрами, движениями и т.д. производится при помощи ссылок, а не кодов и номеров),
если помогло нажмите: Спасибо!

Varg .

LexaK, Да я только за, правильно работать я пишу на основе опыта работы в других языках.
А на моём примере вы могли бы показать как правильно. То есть если  РегСвед рассматривать как объект и обращаться к нему с помощь методов то париться с запросами не нужно ?

LexaK

как раз в 1С в запросах вся суть и соль, это не только самый удобный и быстрый способ получения данных, но и с механизм первичной обработки/расчета данных, примерно 80-90% всех расчетов можно выполнять в запросах, что значительно ускоряет работу.
Старый опыт программирования, вам скорее всего будет мешать здесь.  Учите заново, объектные модели и методы 1С, книжки и типовые базы(как примеры, что бы не изобретать велосипед) вам помогут быстро его освоить.
если помогло нажмите: Спасибо!

Varg .

LexaK, Подскажите пожалуйста что такое по РегОбщий.Договор = ТабСпец.Договор именно договор у меня результата не выводит хотя и ошибок не выдаёт ?
Добавлено: 24 мар 2020, 21:22


LexaK, Вот понять не могу почему РегОбщий.Договор и ТабСпец.Договор пустые где значения могут теряться ?
Добавлено: 25 мар 2020, 09:49


LexaK, Почему временная таблица пустая ?
Добавлено: 26 мар 2020, 11:04


LexaK, Вот я всё разобраться не могу таблица не пустая обращался на прямую всё выводит но когда пробую через соединение выводятся пустые строки почему ?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск