Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: СозданиеОбъекта из переменной

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

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

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

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

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

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

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

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.