Имя: Пароль:
1C
1C 7.7
v7: СозданиеОбъекта из переменной
0 Mafiozaa
 
18.02.21
04:26
Приветствую, не совсем могу догнать, возможно ли вообще сделать так как я задумал

Процедура ВыбратьДокумент()
    ВыбранныйДок = ВыбДок.ПолучитьЗначение(ВыбДок.ТекущаяСтрока());
    ВыбранныйДок = """Документ."+ВыбранныйДок+"""";
    Сообщить(ВыбранныйДок);
КонецПроцедуры

Выбрал вид документа(метаданные) из списказначений
Затем делаю
Док = СоздатьОбъект(ВыбранныйДок);
И получаю ошибку
Неудачная попытка создания объекта ("Документ.ЗаявкаПокупателя")
1 Aleksey
 
18.02.21
04:33
Ковычки лишние
2 Aleksey
 
18.02.21
04:42
ВыбранныйДок = "Документ."+ВыбранныйДок;

Ну или проще
Док = СоздатьОбъект("Документ."+ВыбранныйДок);
3 Mafiozaa
 
18.02.21
04:43
(1) Игрался с ковычками в таком варианте только принимает отладчик, и в сообщить сообщает "ВыбранныйДок"
4 Mafiozaa
 
18.02.21
04:43
(2) Щас попробую
5 Mafiozaa
 
18.02.21
04:50
(2) Вроде прошло, буду с запросом играться, спасибо)
6 Mafiozaa
 
18.02.21
05:07
(2) Запрос у меня естественно так не стрельнет
    Док = СоздатьОбъект("Документ."+ВыбранныйДок);
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = "
    |Период С НачДата По КонДата;
    |ТекущийЭлемент = Док.ТекущийДокумент;
    |Фирма = Документ.ЗаявкаПокупателя.Фирма;
    |ДатаДок = Документ.ЗаявкаПокупателя.ДатаДок;
    |Группировка ТекущийЭлемент упорядочить по ТекущийЭлемент.ДатаДок;
    |Условие (Фирма = ВыбФирм);
    |";
7 Aleksey
 
18.02.21
05:10
(6) Почему? Текст запроса это всего лишь строка

ТекстЗапроса = "
    |Период С НачДата По КонДата;
    |ТекущийЭлемент = Док.ТекущийДокумент;
    |Фирма = Документ."+ВыбранныйДок+".Фирма;
    |ДатаДок = Документ."+ВыбранныйДок+".ДатаДок;
    |Группировка ТекущийЭлемент упорядочить по ТекущийЭлемент.ДатаДок;
    |Условие (Фирма = ВыбФирм);
    |";
8 Aleksey
 
18.02.21
05:11
ну или как 1С любит в щапросе в нужных местах прописываешь %Парам1%
А потом
ТекстЗапроса  = СтрЗаменить(ТекстЗапроса,"%Парам1%",ВыбранныйДок);
9 Aleksey
 
18.02.21
05:17
только в запросе меня смущает вторая строка - |ТекущийЭлемент = Док.ТекущийДокумент;
10 Mafiozaa
 
18.02.21
05:23
(9) Что не так?
11 Mafiozaa
 
18.02.21
05:24
(9) Ну отрабатывает запрос, но иногда кричит на неуникальный номера при проведении, но это уже другой вопрос)
12 Aleksey
 
18.02.21
05:27
(10) откуда запрос знает что такое Док?
|Док = Документ.ЗаявкаПокупателя.ТекущийДокумент;
13 Mafiozaa
 
18.02.21
05:30
(12) Я по вашему примеру сделал
ТекстЗапроса = "
    |Период С НачДата По КонДата;
    |ТекущийЭлемент = Док.ТекущийДокумент;
    |Фирма = Документ."+ВыбранныйДок+".Фирма;
    |ДатаДок = Документ."+ВыбранныйДок+".ДатаДок;
    |Группировка ТекущийЭлемент упорядочить по ТекущийЭлемент.ДатаДок;
    |Условие (Фирма = ВыбФирм);
    |";
14 Mafiozaa
 
18.02.21
05:31
(12) Упс, а надо сделать Документ."+ВыбранныйДок+"
15 Ёпрст
 
гуру
18.02.21
09:11
(13) вот это г...о выкинь еще
упорядочить по ТекущийЭлемент.ДатаДок;

группировка по-умолчанию упорядочена по дате всегда
16 Mafiozaa
 
18.02.21
09:15
(15) Странно, но без этого идет разнобой дат, щас без проверю, отпишусь
17 Mafiozaa
 
18.02.21
09:20
(15) Впринципе оно мне и ненужно, визуально не вывожу, а там без разницы как он их откручивать будет
18 Злопчинский
 
18.02.21
13:18
(6)  |ТекущийЭлемент = Док.ТекущийДокумент;
    |Фирма = Документ.ЗаявкаПокупателя.Фирма;
    |ДатаДок = Документ.ЗаявкаПокупателя.ДатаДок;
    |Группировка ТекущийЭлемент упорядочить по ТекущийЭлемент.ДатаДок;

ТекущийЭлемент - лишнее
используй предопределенное значения
переменную описывать не надо.
Группировка Документ;

Почитай уже ЖКК хотя бы, клюшки это не мутный снеговик, вполне поддаются изучению.