Имя: Пароль:
1C
1С v8
Как узнать, что ссылка пустая?
, ,
0 dddonnn
 
26.03.13
14:29
На клиента ругается что метода ПустаяСсылка() нет
&НаКлиенте
Процедура Печать(ИдентификаторКоманды , ОбъектыНазначенияМассив) Экспорт
   
   ДоговорПереработки = НайтиДоговор(ОбъектыНазначенияМассив);
   ПолучитьФорму("Документ.ДоговорПереработки.Форма.ФормаДокумента").ОткрытьМодально();
   
   Если Не ДоговорПереработки.ПустаяСсылка() Тогда
       ПолучитьФорму("Документ.ДоговорПереработки.ФормаДокумента").ОткрытьМодально();
                                                       
   
   КонецЕсли;    
КонецПроцедуры

&НаСервере
Функция НайтиДоговор(ОбъектыНазначенияМассив)
   
   СсылкаНаОбъект = ОбъектыНазначенияМассив[0].Ссылка;
   Запрос = Новый Запрос;
   // Здесь код
   Запрос.УстановитьПараметр("Организация", СсылкаНаОбъект.Организация);

   Результат = Запрос.Выполнить();
   Выборка = Результат.Выбрать();
   Если Выборка.Следующий() тогда
       Возврат  Выборка.ссылка;
   Иначе
       Возврат  "Нет ссылки";
   КонецЕсли;
   
КонецФункции
1 Armando
 
26.03.13
14:29
Пустая()
2 mikecool
 
26.03.13
14:30
ну почему нет метода ПустаяСсылка() ???
3 Волшебник
 
26.03.13
14:30
Если ДоговорПереработки = "нет ссылки" Тогда
4 MSII
 
26.03.13
14:31
А ЗначениеЗаполнено не пойдет?
5 dddonnn
 
26.03.13
14:33
(1) Да-да, спасибо, попутал
(2)Каюсь! Это я от безвыходности переделал функцию. А вообще так целесообразно писать? Спрашиваю, потому что готовлюсю сдать на спеца.
6 mikecool
 
26.03.13
14:34
(5) я не знаю, я не спец ((((
7 dddonnn
 
26.03.13
14:36
оп, не туда ссылался

(3)Каюсь! Это я от безвыходности переделал функцию. А вообще так целесообразно писать? Спрашиваю, потому что готовлюсю сдать на спеца.
8 zladenuw
 
26.03.13
14:37
(0) а не лучше добавить 2 параметр функции. возвращать найдена ли ссылка(истина,ложь). а второй параметр саму ссылку ? не ?
9 okmail
 
26.03.13
14:38
Лучше возвращать Неопределено чем такие текстовые заглушки
10 dddonnn
 
26.03.13
14:43
(8) не дошло
11 snegovik
 
26.03.13
14:46
Пользуясь моментом, хочу спросить, в чем различие Пустая() и ПустаяСсылка() ?
12 zladenuw
 
26.03.13
14:52
НаКлиенте
Процедура Печать(ИдентификаторКоманды , ОбъектыНазначенияМассив) Экспорт
   
   ДоговорПереработки = ;
   ПолучитьФорму("Документ.ДоговорПереработки.Форма.ФормаДокумента").ОткрытьМодально();
   
   Если НайтиДоговор(ОбъектыНазначенияМассив,ДоговорПереработки) Тогда
       ПолучитьФорму("Документ.ДоговорПереработки.ФормаДокумента").ОткрытьМодально();
                                                       
   
   КонецЕсли;    
КонецПроцедуры

&НаСервере
Функция НайтиДоговор(ОбъектыНазначенияМассив,ДоговорСсылка)
   
   СсылкаНаОбъект = ОбъектыНазначенияМассив[0].Ссылка;
   Запрос = Новый Запрос;
   // Здесь код

   Запрос.УстановитьПараметр("Организация", СсылкаНаОбъект.Организация);

   Результат = Запрос.Выполнить();
   Выборка = Результат.Выбрать();
   Если Выборка.Следующий() тогда
       ДоговорСсылка = Выборка.ссылка;
       Возврат Истина;
   Иначе
       Возврат  Ложь;
   КонецЕсли;
   
КонецФункции
13 banco
 
26.03.13
15:01
(5) таким кодом вряд ли сдашь спеца ПолучитьФорму("Документ.ДоговорПереработки.Форма.ФормаДокумента").ОткрытьМодально();
14 GANR
 
26.03.13
15:03
ЗначениеЗаполнено(ТвояСсылка)
15 GANR
 
26.03.13
15:06
Хм... А почему (0) должно работать???

&НаКлиенте
Процедура Печать(ИдентификаторКоманды , ОбъектыНазначенияМассив) Экспорт
   
   ДоговорПереработки = НайтиДоговор(ОбъектыНазначенияМассив);
   ПолучитьФорму("Документ.ДоговорПереработки.Форма.ФормаДокумента").ОткрытьМодально();
   
   Если Не ЗначениеЗаполнено(ДоговорПереработки) Тогда
       ПолучитьФорму("Документ.ДоговорПереработки.ФормаДокумента").ОткрытьМодально();
                                                       
   
   КонецЕсли;    
КонецПроцедуры

&НаСервере
Функция НайтиДоговор(ОбъектыНазначенияМассив)
   
   СсылкаНаОбъект = ОбъектыНазначенияМассив[0].Ссылка;
   Запрос = Новый Запрос;
   // Здесь код

   Запрос.УстановитьПараметр("Организация", СсылкаНаОбъект.Организация);

   Результат = Запрос.Выполнить();
   Выборка = Результат.Выбрать();
   Если Выборка.Следующий() тогда
       Возврат  Выборка.ссылка;
   Иначе
       Возврат  Неопределено;
   КонецЕсли;
   
КонецФункции
16 MSII
 
26.03.13
15:08
(15) Работать-то оно будет, конечно. Только зачем?
17 beer_fan
 
26.03.13
15:14
(11) Пустая() возвращает Истину или Ложь для конкретной ссылки, а ПустаяСсылка() получает пустое значение определенного типа.
18 dddonnn
 
26.03.13
15:15
(13) почему?
19 dddonnn
 
26.03.13
15:17
(13) ты про то что присвоить переменной
Форма ="Документ.ДоговорПереработки.Форма.ФормаДокумента"
? В чем то ты прав, но на Бухе не думаю что это смотрят
20 dddonnn
 
26.03.13
15:18
(12) По-моему так красиво, но принципиальной разнице я так понимаю нет