![]() |
![]() |
![]() |
|
Конвертация 8.2 -> 7.7 ПометкаУдаления() и Проведен() | ☑ | ||
---|---|---|---|---|
0
Vigor06
06.11.12
✎
17:05
|
Возникла необходимость перенести некоторые документы из 8.2 УТ в 7.7 Учет и отчетность предпринимателя
Создал правила,возникла необходимость уточнить перенос свойств "пометка удаления" и "проведен",так как в 8ке это булевый тип,а в 7.7 - число со значениями 1 или 0 В правилах конвертации свойств "ПометкаУдаления" прописываю следующее: Если Источник.ПометкаУдаления Тогда Значение = 1; Иначе Значение = 0; КонецЕсли; Аналогично и в "Проведении" Все выгружается,но при загрузке в 7ку получаю снача ошибки типа: "Неверное имя реквизита: Документ.СчетФактураВыданный.ПометкаУдаления Порядковый номер объекта в файле: 2 Неверное имя реквизита: Документ.СчетФактураВыданный.ПометкаУдаления Порядковый номер объекта в файле: 2" и т.д. А в самом конце еще и ошибку "Объект.Записать(); {\\1C-TEST\Самсонов\V77IMP.ERT(101)}: Номер не уникальный!" Очень прошу вашей помоши) |
|||
1
hhhh
06.11.12
✎
17:15
|
а длина поля номера в документе 7.7 точно у тебя 11 символов?
|
|||
2
Guk
06.11.12
✎
17:20
|
вроде в 7.7 у документа нет свойства ПометкаУдаления. там это метод...
|
|||
3
Vigor06
06.11.12
✎
17:38
|
()Да,метод
Попытки сделать так: Если Источник.пометкаУдаления ТОгда Приемник.ПометкаУдаления() = 1; Иначе Приемник.ПометкаУдаления() = 0; КонецЕсли; дают Ошибка при выгрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1672)}: Ошибка в обработчике события ПриВыгрузке (свойства) ПКО = СчетФактураВыданный (Документ: Счет-фактура выданный) ПКС = 5 (ПометкаУдаления --> ПометкаУдаления) Объект = Счет-фактура выданный 01-01/02 от 01.02.2011 12:00:00 (Счет-фактура выданный) СвойствоПриемника = ПометкаУдаления (Число) КонвертируемоеЗначение = Нет (Булево) Обработчик = ПриВыгрузкеСвойства ОписаниеОшибки = Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(2,29)}: Неопознанный оператор ПозицияМодуля = ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(9103) КодСообщения = 56 И тд.Уже не понимаю,с какой стороны подступиться |
|||
4
lxndr
06.11.12
✎
17:44
|
(3) хитрО ты его вызвать пытаешься, однако ))
Делай так: Приемник.ПометкаУдаления(1); |
|||
5
Aleksey
06.11.12
✎
17:51
|
я делал общий реквизит в 7-ке "пометка удаления" и "проведен" и уже после загрузки анализировал их
|
|||
6
Vigor06
07.11.12
✎
11:31
|
(5) А по конкретнее можно?
|
|||
7
floody
07.11.12
✎
11:39
|
(6) вообще не переноси пометку удаления и проведен, нафиг?
|
|||
8
Vigor06
07.11.12
✎
11:44
|
(7)а потом вручную их отслеживать?и проводить?
|
|||
9
PCcomCat
07.11.12
✎
11:46
|
(5) +100!
|
|||
10
floody
07.11.12
✎
11:46
|
можно не переносить непроведенные документы, получается после загрузки проводить нужно все
|
|||
11
Vigor06
07.11.12
✎
11:51
|
(10) А если потом их захотят провести в 7ке? А их нет
(5),(9) поясните,пожалуйста,смысл |
|||
12
PCcomCat
07.11.12
✎
11:55
|
В конфигурации есть ветка Общие реквизиты в ветке Документы. Туда Добавляешь реквизиты с Идентификатором ПометкаУдаления и Проведен типа число 1.0 для Документы. И всё. А потом - после конвертации - своей обработкой пробегаешь по всем документам, пемечаешь на удаление или снимаешь пометку удаления, проводишь или снимаешь с проведения.
|
|||
13
Aleksey
07.11.12
✎
11:59
|
(11) Смысл такой чтобы перенести из 8-ки признак проведен и пометка удаления.
|
|||
14
Vigor06
07.11.12
✎
12:02
|
(13)да,это то я понял)Мне не совсем реализация понятна)
(12) Извиняюсь,но помучаю еще немного: Я конвертирую из 8.2 в 7.7,а общие реквизиты только в 7ке. Не пойму,как можно в 7ке будет пробежать по документам и из 8ки взять данные. |
|||
15
Vigor06
07.11.12
✎
12:06
|
Так,стоп
Долой тупость. В конфигурации,в конвертации,создаем общие реквизиты. Но как потом реализовать - не пойму,хоть убей |
|||
16
floody
07.11.12
✎
12:07
|
да хоть в комментарий пиши "помечен" или "проведен", после загрузки помечай или проводи
|
|||
17
Vigor06
07.11.12
✎
12:11
|
(16) блин,все же просто
Спасибо большое,сейчас попробую реализовать) |
|||
18
Сияющий Асинхраль
07.11.12
✎
12:13
|
Проводятся документы после загрузки примерно так:
http://infostart.ru/public/21069/ По аналогии можно сделать и с пометкой на удаление, хотя я, как правило, помеченные на удаление доки просто тупо не переношу... |
|||
19
Aleksey
07.11.12
✎
12:31
|
(14) Что тебе не понятно? Как создать общий реквизит в 7-ке?
После этого в конвертации тупо настраиваешь соответствие Проведен (в 8-ке) = Проведен (реквизит в 7-ке) Пометка (в 8-ке) = Пометка (реквизит в 7-ке) После загрузки документа смотришь, если проведен = 1, значит нужно провести документ, если Пометка = 1, значит нужно удалить И не забывай, что удаленный не проведешь, нужно сначала снять пометку удаления |
|||
20
Vigor06
07.11.12
✎
12:54
|
(19) ну если мы про дефолтные реквизиты - то в 7ке это даже не реквизиты,а методы
А если про общие - то я и действительно решил помеченные на удаление не переносить (Кстати,какой код тут будет верен? "Отказ = Источник.ПометкаУдаления"?) А будет ли корректно работать метод "Провести()",которым мы будем проводить необходимые документы в 7ке - это,имхо,уже другой вопрос) |
|||
21
Vigor06
07.11.12
✎
13:05
|
Так
Создал в 7ке общий реквизит ПометкаПроведен. Тип - число. В Правиле Конвертации Свойств у свойства "Проведен" пишу: Если Источник.Проведен ТОгда Приемник.ПометкаПроведен = 1; Иначе Приемник.ПометкаПроведен = 0; КонецЕсли; После этого в "Правилах обмена данными" в процедуре "После Загрузки Объекта" пишу: Если Объект.ПометкаПроведен = 1 ТОгда Объект.Провести(); КонецЕсли; В итоге при выгрузке из 7ки получаю ошибку: Ошибка в обработчике события ПередВыгрузкой (свойства) ПКО = СчетФактураВыданный (Документ: Счет-фактура выданный) ПКС = 6 (Проведен --> Проведен) Объект = Счет-фактура выданный 01-01/02 от 01.02.2011 12:00:00 (Счет-фактура выданный) СвойствоПриемника = Проведен (Число) Обработчик = ПередВыгрузкойСвойства ОписаниеОшибки = Поле объекта не обнаружено (ПометкаПроведен) ПозицияМодуля = (2) КодСообщения = 55 |
|||
22
Aleksey
07.11.12
✎
13:08
|
(21) <htl yt gbib
|
|||
23
Aleksey
07.11.12
✎
13:09
|
(21) Бред не пиши
|
|||
24
Vigor06
07.11.12
✎
13:09
|
(23) Опыта работы с конвертацией до этого не было
Что не так? |
|||
25
Aleksey
07.11.12
✎
13:09
|
"В Правиле Конвертации Свойств у свойства "Проведен" пишу:
Если Источник.Проведен ТОгда Приемник.ПометкаПроведен = 1; Иначе Приемник.ПометкаПроведен = 0; КонецЕсли; " Ничего писать не надо, просто сопоставить реквизиты и точка |
|||
26
Aleksey
07.11.12
✎
13:12
|
(24) всё не так. У тебя источник и приемник не видят друг друга. Тебе нужно просто сопоставить реквизит Проведен в 8-ке и в 7-ке
Ну или "В Правиле Конвертации Свойств у свойства "Проведен" пишу: Если Источник.Проведен ТОгда Значение =1; Иначе Значение = 0; КонецЕсли; " |
|||
27
Aleksey
07.11.12
✎
13:12
|
Ну или для любителей коротких кодов
Значение=?(Источник.Проведен,1,0); |
|||
28
Aleksey
07.11.12
✎
13:13
|
Либо просто
Значение=Источник.Проведен так как булева она сконвертирует как 0 или 1 |
|||
29
Vigor06
07.11.12
✎
13:32
|
(26)(27)(28)Но тогда ж получается бага при загрузке в 7ку.
Куча таких сообщений "Порядковый номер объекта в файле: 842 Неверное имя реквизита:Документ.СчетФактураВыданный.Проведен Порядковый номер объекта в файле:: 842 Неверное имя реквизита:Документ.СчетФактураВыданный.Пометка удаления" и в конце Объект.Записать(); {\\1C-TEST\1C_Базы\Шаблон\CONVERSION\2_1_6_4\V77IMP.ERT(101)}: Номер не уникальный! |
|||
30
Aleksey
07.11.12
✎
13:47
|
Номер не уникальный! - это значит что уже есть документ с таким номером
|
|||
31
Aleksey
07.11.12
✎
13:47
|
скинь правило
|
|||
32
Vigor06
07.11.12
✎
13:51
|
(31) Да я уже и так все тут прописал,что делаю. И как то все все равно не так
Сейчас пользовался Вашим (27) |
|||
33
leonidkorolev
07.11.12
✎
13:56
|
(0) Создай ПКС Проведен и ПометкаУдаления. У этих ПКС установи Передавать данные в параметр. Обязательно задай имя параметра. Далее в ПКО в обработчике ПослеВыгрузки обращайся к параметрам примерно так
Если ПараметрыОбъекта["Проведен"] Тогда Объект.??? КонецЕсли; |
|||
34
Aleksey
07.11.12
✎
13:58
|
(32) правила скинь
|
|||
35
Vigor06
07.11.12
✎
14:09
|
(33) у меня бокс "Передавать данные в параметр" неактивен ни в существующем правиле, ни во вновь создаваемом((
(34) В ПКС "Пометка удаления" ПередВыгрузкой "Отказ = Источник.ПометкаУдаления;" В ПКС "Проведен" ПередВыгрузкой "Значение=?(Источник.Проведен,1,0);" |
|||
36
Aleksey
07.11.12
✎
14:14
|
(35) Опять бред пишешь
В ПКС "Пометка удаления" ПередВыгрузкой "Отказ = Источник.ПометкаУдаления;" Он просто не будет выгружать реквизит, а документ выгрузит |
|||
37
Vigor06
07.11.12
✎
14:24
|
(33) видимо потому что оно активно только тогда,когда мы из 7.7 в 7.7 переносим)По крайней мере по коду именно так
(36) А как правильно тогда? |
|||
38
Vigor06
07.11.12
✎
14:34
|
(36) Значит стоит этот код запихать непосредственно в "Правила обмена Данными" в процедуру "Перед выгрузкой объекта") Как то так)
А вот с проведением еще потрахаемся |
|||
39
Vigor06
07.11.12
✎
14:42
|
Извините за выражения,был неправ
Что-то я ничего не могу понять.Гугл больше ничего хорошего не говорит,в книжке тоже не нашел. Ну думаю,что все должно быть так сложно,но решения не вижу |
|||
40
Vigor06
08.11.12
✎
12:01
|
Очень интересная ситуация сейчас получается:
В ПКС "Проведен - ПометкаПроведен" следующий код: Если Источник.Проведен ТОгда ПометкаПроведен = 1; Иначе ПометкаПроведен = 0; КонецЕсли; В поиске по по файлу выгрузки Notepad++ выдает мне 1600 документов СчетФактураВыданный,у которых свойство ПометкаПроведен = 1 и еще 300 с ПометкаПроведения=0 Но после загрузки в 7ку,при подсчете количества документов через обработку, узнаю,что вообще в 7ке чуть более 900 документов стало.Где остальные? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |