Имя: Пароль:
1C
1С v8
как редактировать настройку обмена.
0 Gatalik
 
01.11.12
17:34
Есть настроенный обмен между базами УТ и БП , хотелось бы сделать условие выгрузки, а именно в исходнике есть реквизит: Учитывать НДС(Булево)  и в случае если УчитыватьНДС принимает истину, мне надо выгружать данные по Сч-Ф. Как именно работает обмен не буду писать там все норма, но при добавление условия(В ручную в XML)
<ПередВыгрузкой>
                           Если Не Объект.УчитыватьНДС Тогда
                               Значение=Ложь;
                           Иначе
                               СсылкаСчФ= УчетНДС.НайтиПодчиненныйДокумент(Источник.Ссылка, "СчетФактураПолученный");
                               Если (СсылкаСчф = неопределено) или (СсылкаСчФ.Пустая()) Тогда
                                   Значение = "нет Сч.ф."";
                               иначе
                                   Значение = СсылкаСчФ.НомерВходящегоДокумента;
                               КонецЕсли;
                           КонецЕсли;
                       </ПередВыгрузкой>
При выполнение обмена стало ругаться
Ошибка в обработчике события ПередВыгрузкой (свойства)
   ПКО                    =  ПоступлениеТоваровУслуг  (Документ: Поступление товаров и услуг)
   ПКС                    =  121  (--> ДатаСчФВход)
   Объект                 =  Поступление товаров и услуг S0000000117 от 31.10.2012 12:31:20  (Документ объект: Поступление товаров и услуг)
   СвойствоПриемника      =  ДатаВходящегоСчетаФактуры  (Дата)
   Обработчик             =  ПередВыгрузкойСвойства
   ОписаниеОшибки         =  Ошибка компиляции при вычислении выражения или выполнении фрагмента кода
   ПозицияМодуля          =  Обработка.ОбменДаннымиXML(9171)
   КодСообщения           =  55

как посоветуете решить данную проблему, может я не так обращаюсь к объекту (Объект.УчитыватьНДС????)
1 Gatalik
 
01.11.12
17:37
когда было:
Если Не ОбъектКоллекции.УчитыватьНДС Тогда
                               Значение=Ложь;
                           Иначе
так же ругалось на строчку ОбъектКоллекции.УчитыватьНДС
2 Сияющий Асинхраль
 
01.11.12
17:39
Перед выгрузкой у тебя еще нет Объекта:

Если Не Объект.УчитыватьНДС Тогда

А есть только Источник:

Если Не Источник.УчитыватьНДС Тогда
3 Gatalik
 
01.11.12
17:41
Сейчас попробую и сразу же отпишусь, ждите результат
4 Gatalik
 
01.11.12
17:43
Ошибка в обработчике события ПередВыгрузкой (свойства)
   ПКО                    =  ПоступлениеТоваровУслуг  (Документ: Поступление товаров и услуг)
   ПКС                    =  131  (--> ЕстьСчФВход)
   Объект                 =  Поступление товаров и услуг S0000000116 от 17.10.2012 12:00:00  (Документ объект: Поступление товаров и услуг)
   СвойствоПриемника      =  ПредъявленСчетФактура  (Булево)
   Обработчик             =  ПередВыгрузкойСвойства
   ОписаниеОшибки         =  Ошибка компиляции при вычислении выражения или выполнении фрагмента кода
   ПозицияМодуля          =  Обработка.ОбменДаннымиXML(9171)
   КодСообщения           =  55
Опять таже ошибка
5 Сияющий Асинхраль
 
01.11.12
17:44
Чего его ждать то? Ты в одной процедуре используешь и Объект и Источник, такого быть не может, код однозначно не рабочий...
6 Gatalik
 
01.11.12
17:47
Сейчас только источник использую все равно ни чего
7 Gatalik
 
01.11.12
17:50
Я изначально с источником пробовал, потом объект и объект коллекции, всегда ошибки выдает
8 Gatalik
 
01.11.12
17:51
при написании (Объект. или источник.) автозаполнение предлагает учитывать ндс, а при ОбъектКоллекции нет
9 Сияющий Асинхраль
 
01.11.12
17:53
А тебя не смущает, что в реквизит, судя по коду ЕстьСчФВход, ты пытаешься вернуть совершенно разные значения. Посмотри на (0) по твоему коду там может оказаться и Булево и Строка и Номер счета-фактуры?
10 Gatalik
 
01.11.12
17:56
<Свойство>    
                       <Код>131</Код>
                       <Наименование>--&gt; ЕстьСчФВход</Наименование>
                       <Порядок>131</Порядок>
                       <Источник Имя="" Вид="" />
                       <Приемник Имя="ПредъявленСчетФактура" Вид="Реквизит" Тип="Булево"/>
                       <ПередВыгрузкой>
                           Если Не Источник.УчитыватьНДС Тогда ////Если есть НДС то теоретически должна быть счет фактура и надо автоматически поставить галочку перед есть счет фактура
                               Значение=Ложь;
                           Иначе
                               СсылкаСчФ= УчетНДС.НайтиПодчиненныйДокумент(Источник.Ссылка, "СчетФактураПолученный");
                               Если (СсылкаСчф = неопределено) или (СсылкаСчФ.Пустая()) Тогда
                                   Значение = Истина;
                               Сообщить("В документе "+объект+" счет-фактура не сформирована,не смотря на наличие в данном документе НДС!"+
                                    |"Следует сформировать счет-фактуру!!!"!);
                               иначе
                                   Значение = истина;
                               КонецЕсли;
                           КонецЕсли;
                       </ПередВыгрузкой>
                   </Свойство>
тут я указал типбулево
11 Сияющий Асинхраль
 
01.11.12
17:59
(8) Ты вообще для себя разделяешь где может быть Объект, а где источник? Объект находится в базе назначения, т.е. искать его перед выгрузкой не имеет смысла. Источник находится в базе источнике. А вот ОбъектКоллекции и Объект тоже совершенно разные вещи. ОбъектКоллекции грубо говоря табличная часть Источника (еще раз - грубо говоря)
12 Gatalik
 
01.11.12
18:01
Да я уже понял что там не может быть объекта и объекта коллекции, просто от безысходности проверил. Как мне еще можно обратиться перед выгрузкой к реквизиту документа?
13 Сияющий Асинхраль
 
01.11.12
18:05
А что за реквизит "ДатаСчФВход" я его в типовой БП не вижу в упор? Перекопанная конфа что-ли, или вообще самописка?
14 Gatalik
 
01.11.12
18:15
Перекопанная БП , по этой дате док поступление товаров находит счет фактуру.
15 Gatalik
 
01.11.12
18:17
Дело то не в реквизите, раньше работало все с ним.
16 grayshadow
 
01.11.12
19:21
>Сообщить("В документе "+объект+" счет-фактура ...
таки объект остался
а еще - точку останова на
ПозицияМодуля          =  Обработка.ОбменДаннымиXML(9171)
или режим отладки обработкиков
17 Gatalik
 
02.11.12
11:37
Там на тот момент объект уже был исправлен на источник, ошибка была синтаксическая, потому я и удивлялся почему не работает, не смотря на то что все правильно
Если Не Объект.УчитыватьНДС Тогда
                               Значение=Ложь;
                           Иначе
                               СсылкаСчФ= УчетНДС.НайтиПодчиненныйДокумент(Источник.Ссылка, "СчетФактураПолученный");
                               Если (СсылкаСчф = неопределено) или (СсылкаСчФ.Пустая()) Тогда
                                   Значение = "нет Сч.ф."";
в последней строчке два раза "" никто и не заметил))))