Имя: Пароль:
1C
1С v8
Проверка при загрузке в конвертация данных
,
0 Oleg102
 
10.04.14
15:36
Всем привет. Подскажите пожалуйста как сделать проверку в конвертации данных при загрузке. Мне нужно сделать так, что бы при загрузке документа "Поступление Товаров и услуг" стояла проверка если стоит галочка в "Предъявление счет фактуры" то тогда данный документ не изменять или пропустить при загрузке. Что то не соображу немного.

Сейчас такое накалякал, явно не работает

Если ТипЗнч(ДокументСсылка.ПоступлениеТоваровУслуг) = Параметры.ПредъявленСчетФактура = Булево(Истина) Тогда
    Отказ = Истина;
    Предупреждение("Существует счет фактура");
КонецЕсли;
1 Wobland
 
10.04.14
15:37
Отказ=Источник.Предъявлен?
2 MaxS
 
10.04.14
15:40
где-то в после загрузки:
Отказ = ?(Объект.Предъявлен,Истина,Отказ);
3 Wobland
 
10.04.14
15:40
а зачем их вообще выгружать?
4 Wobland
 
10.04.14
15:41
(2) ещё бы если написал
5 Oleg102
 
10.04.14
15:45
(3) Вообщем бухгалтерия когда проверяет документ если все нормально, она ставит галочку предъявлена счет фактура и на основании этого документа формирует счет фактуру, которую изменять в дальнейшем не нужно. Надо сделать такую проверку при загрузке данных, а как правильно написать в конвертации данных не знаю. Что то не получается
6 Wobland
 
10.04.14
15:59
если у поступления галка стоит, то его с/ф не выгружаем. так?
7 Oleg102
 
10.04.14
16:04
(6) да. только на "Выгружаем" а не "Загружаем" уже в базу приемник
8 Wobland
 
10.04.14
16:05
ну и на кой ляд нужна лишняя информация вфайле обмена?
9 Oleg102
 
10.04.14
16:05
Не могу сослаться на документ, а потом его объект и параметр.
10 Oleg102
 
10.04.14
16:05
Начало загрузки:   10.04.2014 18:02:05

Ошибка в обработчике события ПередЗагрузкойДанных (конвертация)
    Обработчик             =  ПередЗагрузкойДанных (конвертация)
    ОписаниеОшибки         =  Поле объекта не обнаружено (ДокументСсылка)
    ПозицияМодуля          =  (1)
    КодСообщения           =  22
11 Oleg102
 
10.04.14
16:06
(8) в смысле?
12 Wobland
 
10.04.14
16:07
(11) в прямом. на зачем в файл писать то, что не будет нужно?
13 Oleg102
 
10.04.14
16:08
(12) а как тогда это реализовать?
14 Oleg102
 
10.04.14
16:08
(12) как еще при загрузке сделать такую проверку можно?
15 Wobland
 
10.04.14
16:09
(13) перед выгрузкой с/ф Отказ=Предъявлено();
а в Предъявлено() ищешь галку у его поступления
16 Oleg102
 
10.04.14
16:12
(15) Не что то типа этого?

Отказ = ?(Объект.Предъявлен(ДокументСсылка.ПоступлениеТоваровУслуг = Параметры.ПредъявленСчетФактура),Истина,Отказ);
17 Oleg102
 
10.04.14
16:14
Отказ = ?(Предъявлен(ДокументСсылка.ПоступлениеТоваровУслуг = Параметры.ПредъявленСчетФактура),Истина,Отказ);
18 Oleg102
 
10.04.14
16:16
Блин что то не хочет
19 Wobland
 
10.04.14
16:39
Отказ = Источник.ПоступлениеТоваровУслугПредъявленСчетФактура?
20 MaxS
 
10.04.14
18:41
(4) Отказ может быть ранее кем-нибудь уже установлен в Истина, на каком основании его можно переопределять значением реквизита документа? т.е. игнорировать ранее установленное значение.

(17) В после загрузки  нужно смотреть на Ссылку
например так:

Отказ = ?(Ссылка.Проведен И Ссылка.Предъявлен И Параметры.ПредъявленСчетФактура,Истина,Отказ);
21 Wobland
 
10.04.14
18:55
(20) расскажи прикол конструкции ?(ЧтоТо, Истина, Ложь)
22 MaxS
 
10.04.14
19:13
(21) Найди одно отличие
Отказ = ?(ЧтоТо, Истина, Ложь);
Отказ = ?(ЧтоТо, Истина, Отказ);
23 Wobland
 
10.04.14
19:17
(22) ага, нашёл
24 Wobland
 
10.04.14
19:21
конструкция симпатичная. интересно, сработаетв полном одиночестве?
25 Aprobator
 
10.04.14
20:36
(0) бредятина какая. Всего то и надо в ПКО, где источник ПТУ прописать в событии ПриВыгрузке: НеЗамещатьОбъектПриЗагрузке = Источник.ПредъявленСчетФактура; - это для случая - не изменять при загрузке. Если не выгружать то аналогично Отказ = ...
26 Wobland
 
10.04.14
20:37
(25) ему счёт-фактуру не надо выгружать, а не источник
27 Aprobator
 
10.04.14
20:43
(26) ну для счет фактуры по аналогии. Если сделан на основании ПТУ - принцип примерно тот же самый.
28 MaxS
 
10.04.14
21:02
(25) судя по вопросу в (0) нужен анализ существующего документа в базе приемнике. Если там стоит флаг, то этот документ не менять.
29 Oleg102
 
11.04.14
06:40
(28) Все верно. Если стоит галка то этот документ менять не нужно
30 Oleg102
 
11.04.14
07:08
Ошибка при загрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1620)}: Ошибка в обработчике события ПередЗагрузкойОбъекта
    ИмяПКО                 =  ПоступлениеТоваровУслуг
    ТипОбъекта             =  Поступление товаров и услуг
    Обработчик             =  ПередЗагрузкойОбъекта
    ОписаниеОшибки         =  Поле объекта не обнаружено (ПредъявленСчетФактура)
    ПозицияМодуля          =  (1)
    КодСообщения           =  19

Окончание загрузки: 11.04.2014 9:04:00
31 Oleg102
 
11.04.14
07:10
Что за фигня то такая((
32 Oleg102
 
11.04.14
07:55
Если не ЗначениеЗаполнено("ПредъявленСчетФактура") = Истина Тогда
        
   Отказ = Истина;
            
КонецЕсли;
33 Oleg102
 
11.04.14
07:56
Подскажите как правильно сослаться на тип "Булево" "Параметры..." и "Объект" ошибка постоянно.
34 MaxS
 
11.04.14
08:02
Есть же пример в (20).
И в обработчике перед загрузкой, по моему нельзя увидеть документ приемника.  В после загрузки документ уже найден и находится в состоянии перед записью. В нашем распоряжении есть Объект с данными из источника и Ссылка с данными из приемника.

Если в параметрах есть реквизит ПередЗагрузкойОбъекта, то вроде бы так и обращаться
Если Параметры.ПередЗагрузкойОбъекта=Истина Тогда
35 MaxS
 
11.04.14
08:12
(34) параметр ПредъявленСчетФактура  т.е. ))
и ещё есть справка по обработчикам...
36 Oleg102
 
11.04.14
08:21
(35)Это же получается не параметр? Так ведь. Он мне ругается что не является ни параметром ни объектом. А кто тогда он блин. Сейчас так сделал ошибок нет но и не работает нифига при этом

Если Параметры.Свойство("ПредъявленСчетФактура") = Истина Тогда
    Отказ = Истина;
КонецЕсли;
37 Oleg102
 
11.04.14
08:22
после загрузке ставлю
38 Oleg102
 
11.04.14
08:23
Не хочет ни как что бы проверялась стоит галочка или нет
39 MaxS
 
11.04.14
08:38
Похоже нужно выяснять с азов. Что такое параметры в КД, что такое реквизиты в метаданных, как проверить наличие имени и значения переменной в структуре...

вот ещё пример можно попробовать:

Отказ = ?(Ссылка.ПредъявленСчетФактура,Истина,Отказ);
40 Oleg102
 
11.04.14
08:43
(39) Заработало. Представляете. Спасибо Вам большое. Сейчас почитаю для себя что Вы мне написали благодарю безумно)))
2 + 2 = 3.9999999999999999999999999999999...