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

Есть такой запрос...

Автор cobra77777, 16 фев 2013, 21:55

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

cobra77777


Здравствуйте!


Есть такой запрос (построенный в констр.запроса):
При просмотре почему то строчки показывает не единожды, а несколько раз . Никак не пойму почему это происходит :( .


LexMark 1234        01.02.2013
[size=78%]LexMark 1234          01.02.2013[/size]
Samsung 1020       02.02.2013

Samsung 1020       02.02.2013
...................................................... и т.д.
[size=78%]ВЫБРАТЬ[/size]
   УчетКартриджейОстаткиИОбороты.Сотрудник КАК сотрудник,
   УчетКартриджейОстаткиИОбороты.Склад КАК склад,
   УчетКартриджейОстаткиИОбороты.Картридж КАК Картридж,
   УчетКартриджейОстаткиИОбороты.КоличествоНачальныйОстаток,
   УчетКартриджейОстаткиИОбороты.КоличествоКонечныйОстаток,
   УчетКартриджейОстаткиИОбороты.КоличествоПриход,
   УчетКартриджейОстаткиИОбороты.КоличествоРасход,
       АКТПриемаКартриджа.Дата КАК Дата
ИЗ
   РегистрНакопления.УчетКартриджей.ОстаткиИОбороты КАК УчетКартриджейОстаткиИОбороты
         Документ.[size=78%]АКТПриемаКартриджа. КАК [/size][size=78%]АКТПриемаКартриджа[/size]








sadovod

Не настроена связь регистра и документа. Либо правильно настроить связь, либо вообще убрать из запроса документ, он там, кстати, и не нужен. Дату акта можно получить из данных регистра...

cobra77777

Прошу извинить меня я только начал изучать 1С. А где эту связь нужно настроить ?

sadovod

Например, так. В конструкторе запроса нужно установить параметр 'Периодичность' виртуальной таблицы 'РегистрНакопления.УчетКартриджей.ОстаткиИОбороты' в значение 'Регистратор', и добавить связь на закладке 'Связи'
где Таблица1 = УчетКартриджейОстаткиИОбороты, а таблица2 = АКТПриемаКартриджа, флажки 'Все' у обеих таблиц сбросить,
а условие связи выбрать как УчетКартриджейОстаткиИОбороты.Регистратор = АКТПриемаКартриджа.Ссылка.
Текст запроса должен получиться таким:

ВЫБРАТЬ
   УчетКартриджейОстаткиИОбороты.Сотрудник КАК сотрудник,
   УчетКартриджейОстаткиИОбороты.Склад КАК склад,
   УчетКартриджейОстаткиИОбороты.Картридж КАК Картридж,
   УчетКартриджейОстаткиИОбороты.КоличествоНачальныйОстаток,
   УчетКартриджейОстаткиИОбороты.КоличествоКонечныйОстаток,
   УчетКартриджейОстаткиИОбороты.КоличествоПриход,
   УчетКартриджейОстаткиИОбороты.КоличествоРасход,
   АКТПриемаКартриджа.Дата КАК Дата
ИЗ
   РегистрНакопления.УчетКартриджей.ОстаткиИОбороты(, , Регистратор, , ) КАК УчетКартриджейОстаткиИОбороты
      ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.АКТПриемаКартриджа КАК АКТПриемаКартриджа
      ПО (УчетКартриджейОстаткиИОбороты.Регистратор = АКТПриемаКартриджа.Ссылка)
Добавлено: 17 фев 2013, 12:00


И вариант без документа. Точно так же установить периодичность виртуальной таблицы в её параметрах, и просто выбрать поле 'Период':
Текст запроса должен получиться таким:
ВЫБРАТЬ
   УчетКартриджейОстаткиИОбороты.Сотрудник КАК сотрудник,
   УчетКартриджейОстаткиИОбороты.Период КАК ДатаДокумента,
   УчетКартриджейОстаткиИОбороты.Склад КАК склад,
   УчетКартриджейОстаткиИОбороты.Картридж КАК Картридж,
   УчетКартриджейОстаткиИОбороты.КоличествоНачальныйОстаток,
   УчетКартриджейОстаткиИОбороты.КоличествоКонечныйОстаток,
   УчетКартриджейОстаткиИОбороты.КоличествоПриход,
   УчетКартриджейОстаткиИОбороты.КоличествоРасход
ИЗ
   РегистрНакопления.УчетКартриджей.ОстаткиИОбороты(, , Регистратор, , ) КАК УчетКартриджейОстаткиИОбороты
ГДЕ
   ТИПЗНАЧЕНИЯ(УчетКартриджейОстаткиИОбороты.Регистратор) = ТИП(Документ.АКТПриемаКартриджа)

cobra77777

я извиняюсь, я правильной дорогой иду (см.влож.файл) ?
Добавлено: 17 фев 2013, 13:04


Большое спасибо sadovod очень помогли.

Добавлено: 18 фев 2013, 18:50


Цитата: sadovod от 17 фев 2013, 11:55И вариант без документа. Точно так же установить периодичность виртуальной таблицы в её параметрах, и просто выбрать поле 'Период':
Текст запроса должен получиться таким:
ВЫБРАТЬ
   УчетКартриджейОстаткиИОбороты.Сотрудник КАК сотрудник,
   УчетКартриджейОстаткиИОбороты.Период КАК ДатаДокумента,
   УчетКартриджейОстаткиИОбороты.Склад КАК склад,
   УчетКартриджейОстаткиИОбороты.Картридж КАК Картридж,
   УчетКартриджейОстаткиИОбороты.КоличествоНачальныйОстаток,
   УчетКартриджейОстаткиИОбороты.КоличествоКонечныйОстаток,
   УчетКартриджейОстаткиИОбороты.КоличествоПриход,
   УчетКартриджейОстаткиИОбороты.КоличествоРасход
ИЗ
   РегистрНакопления.УчетКартриджей.ОстаткиИОбороты(, , Регистратор, , ) КАК УчетКартриджейОстаткиИОбороты
ГДЕ
   ТИПЗНАЧЕНИЯ(УчетКартриджейОстаткиИОбороты.Регистратор) = ТИП(Документ.АКТПриемаКартриджа)

Все работает (по этому БЛОК КОДУ) один момент только. При выводе отчета получается примерно следующее:

HP 1200           1
HP 1200           2
HP 1200           3

Вместо того чтобы он сразу ОДНОЙ СТРОЧКОЙ написал 3 (три) он по каждому действию выводит номер. Где нужно подправить ?

Gunner

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

Теги:

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

Рейтинг@Mail.ru

Поиск