|   |   | 
| 
 | Переменная не определена (VIP) | ☑ | ||
|---|---|---|---|---|
| 0
    
        AlekseyJr 27.06.24✎ 09:43 | 
        Есть запрос, в косоли запросов всё работает, в коде нет. Пишет ошибку "Переменная не определена (VIP)". VIP - это свойство контрагента. И собственно возникает вопрос, как её определить?))
 Функция ПолучитьСписокVIPКонтрагентов()  
	Запрос = Новый Запрос; 
	Запрос.Текст =  
		"ВЫБРАТЬ 
		|	ЗначенияСвойствОбъектов.Объект КАК Объект, 
		|	ЗначенияСвойствОбъектов.Свойство КАК Свойство, 
		|	ЗначенияСвойствОбъектов.Значение КАК Значение 
		|ИЗ 
		|	РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов 
		|ГДЕ 
		|	ЗначенияСвойствОбъектов.Свойство = &Свойство";
   	Запрос.УстановитьПараметр("Свойство", VIP);
	РезультатЗапроса = Запрос.Выполнить(); 
	Возврат РезультатЗапроса.Выгрузить(); 
	
КонецФункции | |||
| 1
    
        Инстанс 27.06.24✎ 06:55 | 
        Код показывай. Ты переменную-то объявил?     | |||
| 2
    
        Инстанс 27.06.24✎ 06:56 | 
        И что за форматирование. Тут, вроде, есть 1С.     | |||
| 3
    
        Инстанс 27.06.24✎ 06:57 | 
        Что такое вип? Говори. Давай разрулим     | |||
| 4
    
        AlekseyJr 27.06.24✎ 07:01 | 
        (3) VIP - это свойство контрагента, по которому я хочу определить список контрагентов с особыми условиями.     | |||
| 5
    
        Инстанс 27.06.24✎ 07:02 | 
        Давай тим вью что ли. Запрос нормальный. Как ты добываешь свойство контрагента. Просто пишешь VIP что ли     | |||
| 6
    
        Инстанс 27.06.24✎ 07:03 | 
        В консоли запросов ты значение-то заполняешь, а в программном коде - ух. Брезгуешь поди     | |||
| 7
    
        AlekseyJr 27.06.24✎ 07:03 | 
        (1)     СписокVIPКонтрагентов = ПолучитьСписокVIPКонтрагентов(); 
 Для Каждого Строка ИЗ СписокVIPКонтрагентов Цикл НайденнаяСтрока = СписокVIPКонтрагентов.Найти(Строка.Объект, "Объект"); Если НайденнаяСтрока = Контрагент Тогда ПредельнаяДатаОплаты = ДатаОплаты + 15552000; // 180 дней Иначе ПредельнаяДатаОплаты = ДатаОплаты + 7776000; // 90 дней КонецЕсли; КонецЦикла; Функция ПолучитьСписокVIPКонтрагентов() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗначенияСвойствОбъектов.Объект КАК Объект, | ЗначенияСвойствОбъектов.Свойство КАК Свойство, | ЗначенияСвойствОбъектов.Значение КАК Значение |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов |ГДЕ | ЗначенияСвойствОбъектов.Свойство = &Свойство"; Запрос.УстановитьПараметр("Свойство", VIP); РезультатЗапроса = Запрос.Выполнить(); Возврат РезультатЗапроса.Выгрузить(); КонецФункции | |||
| 8
    
        Инстанс 27.06.24✎ 07:04 | 
        Либо код показывай весь     | |||
| 9
    
        AlekseyJr 27.06.24✎ 07:04 | 
        (2) Я не увидел((     | |||
| 10
    
        Инстанс 27.06.24✎ 07:05 | 
        Ну и где переменная VIP?     | |||
| 11
    
        Инстанс 27.06.24✎ 07:06 | 
        Как ты вообще можешь в функции обращаться к необъявленной переменной. Чему тебя в жизни учили     | |||
| 12
    
        Инстанс 27.06.24✎ 07:08 | 
        Конфа какая?     | |||
| 13
    
        AlekseyJr 27.06.24✎ 07:09 | 
        (10) То есть переменная должна быть объявлена за пределами запроса? Я хотел через УстановитьПараметр...     | |||
| 14
    
        AlekseyJr 27.06.24✎ 07:10 | 
        (12) УТ 10.2     | |||
| 15
    
        Инстанс 27.06.24✎ 07:11 | 
        (13) А ты думаешь, если ты пишешь VIP, то что должно случиться? Ты кто по образованию?     | |||
| 16
    
        AlekseyJr 27.06.24✎ 07:11 | 
        (11) Да вот именно ничему, касаемо 1С, пытаюсь сам, с переменным успехом     | |||
| 17
    
        Инстанс 27.06.24✎ 07:12 | 
        Нет, нету старых утэшек. Удалил уже.     | |||
| 18
    
        Инстанс 27.06.24✎ 07:12 | 
        Короче, примерно     | |||
| 19
    
        Инстанс 27.06.24✎ 07:14 | 
        Хотя, блин, у меня нет старой УТ. Я там вообще не работаю. По логике VIP это Булево
 Запрос.УстановитьПараметр("Свойство", Истина); | |||
| 20
    
        Инстанс 27.06.24✎ 07:14 | 
        Если траблы, пиши. Зайду, помогу     | |||
| 21
    
        AlekseyJr 27.06.24✎ 07:14 | 
        В моём случаи чудо((( Первый курс закончил, Информатика и вычислительная техника.     | |||
| 22
    
        AlekseyJr 27.06.24✎ 07:14 | 
        (20) Спасибо))     | |||
| 23
    
        Инстанс 27.06.24✎ 07:15 | 
        (21) Ну если ты первый курс закончил, как ты вообще в самостоятельной функции обращаешься к неопределённой переменной     | |||
| 24
    
        Мимохожий Однако 27.06.24✎ 07:17 | 
        (0) Режим отладки использовать научился? Искомая переменная есть на форме обработки? В каком режиме запускаешь базу?     | |||
| 25
    
        Инстанс 27.06.24✎ 07:23 | 
        vip по ходу это доп. свойство. просто название. думаю, это булево. поэтому (19) должен вырулить. а так..     | |||
| 26
    
        Мультук гуру 27.06.24✎ 09:30 | 
        (0) 
 Тебе нужно получить ссылку на это доп.свойство VIP = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("VIP", Истина); P.S. Почему НайтиПоНаименованию("") в целом плохо тебе объяснят. А вот как его заменить на что-то взрослое, тебе тоже объяснят, но имхо сработает золотое правило "нельзя впихнуть невпихуемое" P.S. В (26) правильный ответ. | |||
| 27
    
        Valdis2007 27.06.24✎ 08:32 | 
        просто к вип переменным нет допуска еще))     | |||
| 28
    
        lEvGl гуру 27.06.24✎ 09:19 | 
        (26) скорее так
 VIP = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("VIP"); а ДополнительныеРеквизитыИСведения это уже из новых | |||
| 29
    
        AlekseyJr 27.06.24✎ 10:00 | 
        Всем спасибо, методом проб и ошибок пришел к такому решению. Правда не знаю, насколько это правильно, но вроде работает))Хах
 Если ЗначениеСвойстваVIPКонтрагента() тогда ПредельнаяДатаОплаты = ДатаОплаты + 15552000; // 180 дней Иначе ПредельнаяДатаОплаты = ДатаОплаты + 7776000; // 90 дней КонецЕсли; Функция ЗначениеСвойстваVIPКонтрагента() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | ЗначенияСвойствОбъектов.Объект КАК Объект, | ЗначенияСвойствОбъектов.Свойство КАК Свойство, | ЗначенияСвойствОбъектов.Значение КАК Значение |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов |ГДЕ | ЗначенияСвойствОбъектов.Свойство = &Свойство | И ЗначенияСвойствОбъектов.Объект = &Объект"; VIP = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("06828"); Запрос.УстановитьПараметр("Свойство", VIP); Запрос.УстановитьПараметр("Объект", Контрагент); РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Возврат Ложь; Иначе РезультатЗапроса = РезультатЗапроса.Выбрать(); РезультатЗапроса.Следующий(); Возврат РезультатЗапроса.Значение; КонецЕсли; КонецФункции | |||
| 30
    
        Волшебник 27.06.24✎ 09:46 | 
        (29) Ненадёжная строка:
 VIP = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("06828"); | |||
| 31
    
        Инстанс 27.06.24✎ 09:51 | 
        молодо зелено. хотя не так. ну ёперный театр     | |||
| 32
    
        AlekseyJr 27.06.24✎ 09:51 | 
        (30) У меня было всего два варианта НайтиПоКоду, НайтиПоНаименованию((     | |||
| 33
    
        Волшебник 27.06.24✎ 09:52 | 
        (29) плохие цифры:
 ПредельнаяДатаОплаты = ДатаОплаты + 15552000; // 180 дней ПредельнаяДатаОплаты = ДатаОплаты + 7776000; // 90 дней Лучше так: СекундВСутках = 86400; // 24*60*60 ПредельнаяДатаОплаты = ДатаОплаты + 180 * СекундВСутках; // 180 дней ПредельнаяДатаОплаты = ДатаОплаты + 90 * СекундВСутках; // 90 дней | |||
| 34
    
        Инстанс 27.06.24✎ 09:52 | 
        Подаваном-бы тебе к нормальному сеньору.     | |||
| 35
    
        AlekseyJr 27.06.24✎ 09:53 | 
        (31) Это значит "Всё очень плохо!"?     | |||
| 36
    
        Волшебник 27.06.24✎ 09:53 | 
        (32) Ищите по наименованию.
 Или сделайте свойство предопределённым. | |||
| 37
    
        Волшебник 27.06.24✎ 09:55 | 
        Плохое изменение типа переменной через переприсваивание:
 РезультатЗапроса = РезультатЗапроса.Выбрать(); Правильно так: Выборка = РезультатЗапроса.Выбрать(); | |||
| 38
    
        Климов Сергей 27.06.24✎ 09:55 | 
        (29)
 1. (30) +1000 2. Параметры запроса заполняются необъявленными переменными (VIP и Контрагент). 3. Функция ЗначениеСвойстваVIPКонтрагента() поди в цикле вызывается? Тогда это запрос в цикле. А это лютый харам! В этом случае правильно вместе с формированием выборки по контрагентам определять и свойство VIP. В одном запросе. | |||
| 39
    
        AlekseyJr 27.06.24✎ 09:56 | 
        (36) Касаемо предопределённого свойства была мысля, но я не разу так не делал, поэтому отбросил, видимо зря. Буду значит переделывать, спасибо.     | |||
| 40
    
        Инстанс 27.06.24✎ 09:57 | 
        (35) Если начать с того, что ты обращался к необъявленной переменной. Как тебе это в голову пришло. Программист может тупить над фреймворком, но азы-то он должен схватывать на лету.     | |||
| 41
    
        Инстанс 27.06.24✎ 09:57 | 
        (39) Функцию напиши.     | |||
| 42
    
        Chai Nic 27.06.24✎ 09:59 | 
        Ну если уж перфекционировать по полной, то и несколько Возвратов из функции тоже не красиво. Лучше присвоить значение переменной, а Возврат сделать один раз в конце.     | |||
| 43
    
        Волшебник 27.06.24✎ 10:00 | 
        (29) Обращение к неизвестной переменной Контрагент
  Запрос.УстановитьПараметр("Объект", Контрагент); | |||
| 44
    
        Волшебник 27.06.24✎ 10:00 | 
        Итак, вывод следующий.
 Тупой бот пудрит мозги кожаным мешкам | |||
| 45
    
        Инстанс 27.06.24✎ 10:02 | 
        Юный подаван ищет участие     | |||
| 46
    
        Волшебник 27.06.24✎ 10:03 | 
        (45) Не надо врать. Люди не могут быть такими тупыми.     | |||
| 47
    
        Инстанс 27.06.24✎ 10:05 | 
        (46) У него же написано - Jr. Может, он реально не догоняет.     | |||
| 48
    
        Волшебник 27.06.24✎ 10:06 | 
        (47) У Вас тоже написано "инстанс". Может Вы тоже инстанс гопоты?     | |||
| 49
    
        AlekseyJr 27.06.24✎ 10:06 | 
        (40) Программист, а мне до программиста далеко ещё...     | |||
| 50
    
        Инстанс 27.06.24✎ 10:09 | 
        (48) Это в честь MFC, наверно. hInstance. Почините сайт - со старым логином зайти не могу.     | |||
| 51
    
        Волшебник 27.06.24✎ 10:16 | 
        (50) С каким из сотни?     | |||
| 52
    
        Волшебник 27.06.24✎ 10:17 | 
        (50) Вот нашёл красивый Ваш ник: Лалалалилалалала     | |||
| 53
    
        Волшебник 27.06.24✎ 10:18 | 
        (49) Идите книжки читайте. Перестаньте громоздить куски программного кода друг на друга.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |