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

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

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

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

Выбрал вид документа(метаданные) из списказначений
Затем делаю
Док = СоздатьОбъект(ВыбранныйДок);
И получаю ошибку
Неудачная попытка создания объекта ("Документ.ЗаявкаПокупателя")
   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 или кнопку "Обновить" в браузере.