Имя: Пароль:
1C
1С v8
Конвертация проверка наименований
0 Misty
 
04.10.12
03:09
Добрый день.
Есть конвертация из 1с7 в 1с8. Есть задача - не выгружать те объекты, где  наименования контрагентов различаются в базах.
Если объект.наименование <> объект.ссылка.наименование  тогда
отказ=1;
КонецЕсли;
1 Misty
 
04.10.12
03:13
Добрый день.
Есть конвертация из 1с7 в 1с8. Есть задача - не выгружать те объекты, где  наименования контрагентов различаются в базах.
В обработчике событий в обработке после загрузки пишу
Если объект.наименование <> объект.ссылка.наименование  тогда
отказ=1;
КонецЕсли;
Это со справочником контрагенты, тут все в порядке А как сделать, чтобы и документы где есть такие контрагенты тоже не выгружались.
В после загрузке в документе объект и объект.ссылка уже не прокатывают.
Спасибо.
2 zladenuw
 
04.10.12
03:20
перед выгрузкой. и условие если в объектеН не выполнилось условие объектаК то отказ = 1
3 Misty
 
04.10.12
03:50
Перед выгрузкой - это же то что в 1с7, а мне надо проверять уже в 1с8. Я ж из 7 выгружаю все, а вот то что отличается по наименованию контрагента, не загружаю в 8-ку
4 zladenuw
 
04.10.12
03:51
а почему до неможешь ?
5 zladenuw
 
04.10.12
03:54
после загрузки. это когда объект создан. при загрузке..
6 Misty
 
04.10.12
03:57
после загрузки еще есть возможность отказаться
7 Misty
 
04.10.12
04:00
В обработчике событий в обработке после загрузки пишу
Если объект.наименование <> объект.ссылка.наименование  тогда
отказ=1;
КонецЕсли;
вот такая ерунда почемуто работает только в обработке после загрузке и только в справочнике, а в документе уже не работает,
8 zladenuw
 
04.10.12
04:01
так блина. объект в документе. это документ. думай.
9 Галахад
 
гуру
04.10.12
04:02
(7) А код?
10 Misty
 
04.10.12
04:03
какой код?
11 Галахад
 
гуру
04.10.12
04:05
(10) Из обработчика документа.
12 zladenuw
 
04.10.12
04:06
да походу типовая. пилит. вот тут трабла. и дума идет.
13 zladenuw
 
04.10.12
04:07
сделай проверку. такого типа. что бы ссылка на некий реквизит была пустая при выполнение условия твоего. и делай отказ
14 Misty
 
04.10.12
04:07
после загрузки пробовала так:
Если объект.Контрагент.наименование <> объект.ссылка.Контрагент.наименование  тогда
   сообщить("контрагент код="+объект.Контрагент.код+"; наименование 1с7 = "+объект.Контрагент.наименование+";   наименование 1с8 = "+объект.ссылка.Контрагент.наименование);    
   сообщить(""+объект+" не загружен");

   отказ=1;
КонецЕсли;

не работает
15 zladenuw
 
04.10.12
04:11
ну так блин
16 zladenuw
 
04.10.12
04:11
после ты уже записал его. при загрзки!
17 Галахад
 
гуру
04.10.12
04:11
(14) Наверное он справочник грузиться раньше чем документ.
Т.е. объект.Контрагент и объект.ссылка.Контрагент это одно и тоже.
18 zladenuw
 
04.10.12
04:11
когда нет элемента еще в бд. и чем ты сравниваешь
19 zladenuw
 
04.10.12
04:11
если у тебя о=о ?
20 zladenuw
 
04.10.12
04:12
(17) пишет про документ. то должно при загрузке документа. получать нужный объект по реквизиту документа
21 Misty
 
04.10.12
04:15
не одно и тоже в первом случае это наименование из 8-ки уже, а во втором просто пусто
22 Галахад
 
гуру
04.10.12
04:18
(21) Не понял.
23 Misty
 
04.10.12
04:22
объект.Контрагент.наименование= наименование из 8-ки
объект.ссылка.Контрагент.наименование= пусто
24 Галахад
 
гуру
04.10.12
04:25
(23) Не понял. Значит условие выполняется?
Т.е. наименования разные. Все работает. Или как?
25 Misty
 
04.10.12
04:28
оно выплняется для всех документов без исключения, увы
26 zladenuw
 
04.10.12
04:30
ну ты блин. синия полоска.... а тут на.... ты в Приемнике ищи ссылку и с ней проверяй. а твое условие действие по объекту. объект.ссылка.пусто его еще нема....
27 zladenuw
 
04.10.12
04:30
(25) фото давай %)
28 zladenuw
 
04.10.12
04:33
ню?
29 Галахад
 
гуру
04.10.12
04:34
(25) Ну да, похоже документа еще нет. Проверь, что возвращает объект.ссылка
30 zladenuw
 
04.10.12
04:37
она ищет ссылку по источнику, а ссылки в приемнике еще нету. есть только объект :). а что бы искало по ссылке. то нужно делать поиск по ссылке
31 zladenuw
 
04.10.12
04:37
в приемнике...
32 zladenuw
 
04.10.12
04:44
тут надо фото. надо фокусника ждать :) он точно найдет
33 Misty
 
04.10.12
04:44
объект.ссылка тоже пусто
34 zladenuw
 
04.10.12
04:45
фото
35 zladenuw
 
04.10.12
04:56
Если объект.Контрагент.наименование <> Источник.ссылка.Контрагент.наименование  тогда

а так ?
36 Misty
 
05.10.12
01:36
и так не работает:
ОписаниеОшибки         =  Значение не является значением объектного типа (ссылка)
и без ссылка не работает,
зато наверное получится так: если у контрагентов наименование не совпадает, то записывать в комментарий какое нибудь сообщение и потом при загрузке документов пропускать объекты, где у контрагента в комментарии найдется сообщение.
По другому я что то никак не соображу, увы.
37 Aleksey
 
05.10.12
01:40
почему  отказ=1;??

Ты же в 8-ке загружаешь

отказ=истина;
38 Aleksey
 
05.10.12
01:42
С документами работать не будет

Если объект.Контрагент.наименование - ты отказался от загрузки клиента, т.е. он не обновил наименование а значит

объект.Контрагент.наименование = объект.ссылка.Контрагент.наименование
39 Aleksey
 
05.10.12
01:43
У меня вопрос что будет если новый клиент (его нет в базе), что должно произойти с документами и контрагентами?
40 Aleksey
 
05.10.12
01:45
По сабжу.

Вариант 1
В параметр добавляешь параметр СписокПлохихКлиентов.
При загрузки контрагентов если он плохой добавляешь в список
При загрузки документов если клиент из списка, то отказывавшийся от загрузки документа

Вариант 2.
Передавать Имя клиент в реквизитах документа (например комментарий) и сравнивать с коментариями
41 Aleksey
 
05.10.12
01:46
(35) Бред какой то
Источник -  при выгрузки
Объект - при загрузки

И как их сравнивать?
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс