Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
30 авг 2025, 19:52

Запрос для макета СКД на форму

Автор sali, 25 авг 2025, 08:50

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

sali

Скажите пожалуйста, можно ли соединить в одной выборке контрагента и вид документа? примерно так
ВЫБРАТЬ
ВидыДокументовЭДО.Ссылка КАК Ссылка,
Контрагенты.Ссылка КАК Ссылка1
ИЗ
Справочник.ВидыДокументовЭДО КАК ВидыДокументовЭДО,
Справочник.Контрагенты КАК Контрагенты
{ГДЕ
(&ссылка = Контрагенты.Ссылка
ИЛИ &ссылка = ВидыДокументовЭДО.Ссылка)}

мне просто нужно на форму документа добавить скд отбор с периодом, контрагентом и видом документа.

antoneus

Ну вообще объединением это делается.

sali

Цитата: antoneus от 25 авг 2025, 09:15объединением
вечно забываю про него......спасибо, как всегда выручаете :ehtwj:

sali

ВЫБРАТЬ
    Контрагенты.Ссылка КАК Контрагент,
    Контрагенты.Наименование КАК Наименование
ИЗ
    Справочник.Контрагенты КАК Контрагенты
ГДЕ
    НЕ Контрагенты.ПометкаУдаления
    И НЕ Контрагенты.ЭтоГруппа
{ГДЕ
    Контрагенты.Ссылка.* КАК Контрагент}

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ВидыДокументовЭДО.Ссылка,
    ВидыДокументовЭДО.Наименование
ИЗ
    Справочник.ВидыДокументовЭДО КАК ВидыДокументовЭДО
ГДЕ
    НЕ ВидыДокументовЭДО.ПометкаУдаления
{ГДЕ
    ВидыДокументовЭДО.Ссылка.* КАК ВидДокумента}

сделал этот запрос , но не то сделал...Снимок экрана 2025-08-25 150341.pngСнимок экрана 2025-08-25 150445.png
а нужно ведь если выбирается документ то и контрагент высвечивается и наоборот 

Максим75

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

у Вас в выборке должно быть нечто такое

Вася
Клавдия
Парамон
Акт выполненных работ
Расходная накладная
Приходный ордер
....

как говорила моя учительница, ехали два трамвая: один в парк, другой зеленый.

sali

Максим75, вот вы совершенно правы . однако я в том же ступоре как объединить два несвязанных между собой спр-ка  и период добавить в один отбор скд.
на форме создать отбор скд с параметрами период, контрагент и вид документа

sali


Максим75

Цитата: sali от 25 авг 2025, 19:53Максим75, а как надо?

что надо?
какую задачу необходимо решить?

sali

Максим75, выбрать из запроса каким-то макаром данные из спр контрагенты, вид документа, период добавить в отбор скд . вот такой отборСнимок экрана 2025-08-26 133116.png чтобы по этому отбору сделать выгрузку документов в тз

Максим75

sali, т.е. надо подготовить некий список видов документов (вот какие есть в конфигурации), потом по выбранному виду документа сделать выборку этих документов за период и отобрать по конрагенту?
ну такое через скд тяжеловато будет, надо прямой текст запроса рисовать, и передавать имя документа исходя из выбранного вида документа.

примерно так:

ТекстЗапросаДляДокумента = ?(Первый, "ВЫБРАТЬ РАЗРЕШЕННЫЕ ", мРазделительСтрок + "ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ") +
?(МетаданныеДокумента.Проведение = ПроведениеРазрешить, "
| ВЫБОР КОГДА __Документ.Проведен ТОГДА 1 ИНАЧЕ ВЫБОР КОГДА __Документ.ПометкаУдаления ТОГДА 3 ИНАЧЕ 2 КОНЕЦ КОНЕЦ", "
| ВЫБОР КОГДА __Документ.ПометкаУдаления ТОГДА 4 ИНАЧЕ 1 КОНЕЦ") + ?(Первый, " КАК Иконка", "") + ",
| ДАТАВРЕМЯ(1990,1,1,0,0,0)" + ?(Первый, " КАК __ДатаДляГруппировки", "") + ",
// | _Документ.Отделение" + ?(Первый, " КАК __ДатаДляГруппировки", "") + ",
| __Документ.Дата,
| " + ?(МетаданныеДокумента.ДлинаНомера, "__Документ.Номер", "NULL") + ?(Первый, " КАК Номер", "") + ",
| """ + СтрЗаменить(МетаданныеДокумента.Представление, """", """""") + """" + ?(Первый, " КАК ВидДокумента", "") + ",
| __Документ.Ссылка,
| __Документ.ПометкаУдаления," +
?(МетаданныеДокумента.Проведение = ПроведениеРазрешить, "
| __Документ.Проведен", "
| Ложь" + ?(Первый, " КАК Проведен", "")) + ",
| Истина" + ?(Первый, " КАК УровеньРазвернут", "");

Если ИспользоватьГрафы Тогда
СтруктураЗапросов = ПолучитьЗапросыДляГраф(ПараметрыПостроителя, Первый, ИмяДокумента, СтруктураГраф, ИспользоватьСвойства, ИспользоватьТабличныеЧасти, СоответствиеПараметров);
ТекстЗапросаДляГраф = СтруктураЗапросов.ТекстЗапросаДляГраф;
ТекстЗапросаУсловие = СтруктураЗапросов.ТекстЗапросаУсловие;
ТекстЗапросаСоединение = СтруктураЗапросов.ТекстЗапросаСоединение;
ТекстЗапросаСортировка = СтруктураЗапросов.ТекстЗапросаСортировка;
КонецЕсли;

ТекстЗапросаДляДокумента = ТекстЗапросаДляДокумента + ТекстЗапросаДляГраф + "
|ИЗ Документ." + ИмяДокумента + " КАК __Документ" + ТекстЗапросаСоединение + "
|" + Условие + ТекстЗапросаУсловие + ТекстЗапросаСортировка + "
|";

вот здесь в ИЗ и указывается какой именно документ будем выбирать
т.е. ИмяДокумента и будет зависеть от того, какой вид документа выбрали

или если тяжело "собрать" таким образом текст запроса, то делаете через Если ИначеЕсли и т.д., перебирая все возможные варианты вида документа и для каждого рисуете свой запрос. Много текста будет, но вполне все выполнимо и понятно.

Теги:

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

Рейтинг@Mail.ru

Поиск