Имя: Пароль:
1C
1С v8
Составной тип данных у реквизита документа
,
0 agrail86
 
01.10.14
06:56
Имеется у документа "Заявка на бетон/раствор" реквизит "ДокументПередачи" - тип - составной:
ДокументСсылка.ПередачаТоваров,
ДокументСсылка.ВозвратТоваровПоставщику, ДокументСсылка.ЗаявкаНаОтгрузкуСОтветХранения, ДокументСсылка.РеализацияТоваровУслуг, ДокументСсылка.ПриходныйОрдерНаТовары,
ДокументСсылка.ЗаказПокупателя,
ДокументСсылка.ПеремещениеТоваров,
ДокументСсылка.РасходныйОрдерНаТовары
При проверке в процедурах ПередЗаписью() - в модуле объекта стоит условие:
если Адрес<>ДокументПередачи.АдресДоставки тогда
Предупреждение("Адреса не равны печать не возможна");
Возврат;
конецесли;
условие проходит если выбран док-т -реализация товара, при выборе другого док-та выводит ошибку - что данное поле не найдено - и действительно у ДокументПередачи.АдресДоставки - нет адреса доставки но зато есть ДокументПередачи.Адрес. помогите обойти ошибку! =)
1 Рэйв
 
01.10.14
07:05
Если ДокументПередачи<>Неопределено Тогда
     Если ДокументПередачи.Метаданные().Реквизиты.Найти("АдресДоставки")<>Неопределно  тогда
   Если Адрес<>ДокументПередачи.АдресДоставки тогда
        Сообщить("Бу!");
   КонецЕсли;
КонецЕсли;
2 Рэйв
 
01.10.14
07:05
*одну КонецЕсли забыл:-)
3 mergan
 
01.10.14
07:06
проверяй тип документаПередачи
4 mergan
 
01.10.14
07:06
(1)ой сколько много проверок ... дельфист поди)))
5 Рэйв
 
01.10.14
07:07
(4)Нет. Просто осторожный адинесник:-)
Но если ты заметил все проверки нужные.
6 mergan
 
01.10.14
07:11
(5)неа ... первая лишняя
7 mergan
 
01.10.14
07:12
если типЗнч(ДокументПередачи) = Тип("Документ.РеализацияТовара") тогда
  если Адрес<>ДокументПередачи.АдресДоставки тогда
    сообщить("Бу!!!);
8 Рэйв
 
01.10.14
07:17
(7)Это просто другой путь решения:-)
9 agrail86
 
01.10.14
07:17
Спасибо) Выручили! написал так:
Если ДокументПередачи.Метаданные().Реквизиты.Найти("АдресДоставки")= Неопределено  тогда
                 если Адрес<>ДокументПередачи.Адрес тогда
                     Предупреждение("Адреса не равны печать не возможна");
                 Возврат;
                 конецесли;
            Иначе
                 если Адрес<>ДокументПередачи.АдресДоставки тогда
                     Предупреждение("Адреса не равны печать не возможна");
                 Возврат;
                  конецесли;
            КонецЕсли;
10 Рэйв
 
01.10.14
07:19
(9)Если не будет заполненно - будет ошибка. Проверяй или на заполнение как у меня в (1) или на тип как в(7)
11 mergan
 
01.10.14
07:22
ну в модуле при записи это конечно существенной роли не сыграет ... но если ты будешь делать это в обработке при перезаписи существенного количества документов реализации может уже сказаться
12 agrail86
 
08.10.14
14:41
спасибо учел!