Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: КД2 Планы счетов, не переносятся не предопределенные счета

v7: КД2 Планы счетов, не переносятся не предопределенные счета
Я
   Mikhail Volkov
 
08.02.19 - 17:50
Начало в Обрезать базу, первоначально планировал сделать обрезание базы путем переноса нужных документов (за последний период) в пустую базу. Но из-за проблем переноса КД2 все же обрезание сделано удалением старых не нужных документов. Но проблема переноса между 7-ними базами с помощью КД2 осталась как отдельная задача. Часть проблем, с переносом признаков Проведен и ПометкаУдаления, успешно решилось Часть проблем, с помощью http://catalog.mista.ru/public/240825/. А вот с переносом не предопределенных счетов (которые созданы не в конфигураторе) - беда, не переносятся, в документах, в которых эти счета, в базу приемник приходят пустые!?
И по моему самими правилами эта проблема нерешаема. Нужны изменения в выгружаемые из КД2 модули обработки выгрузки и загрузки данных для платформы 7.7. Но какие? Может кто решал эту проблему, отзовитесь!?
 
 
   73с
 
1 - 08.02.19 - 17:54
Два варианта.
1. Сделать эти счёта предопределёнными в конфе и закрыть проблему за 10 минут
2. Использовать как бы это сказать - более родные для 7.7 механизмы переноса
   Mikhail Volkov
 
2 - 08.02.19 - 19:09
(1) 1. Не хотелось бы менять конфигурацию...
2. Когда КД2 не было (как и самой 8-ки) использовал для обмена УРБД, и МОД (Пи-Би). Но уже все забыто... Хотелось бы в КД2 реализовать.
   73с
 
3 - 08.02.19 - 21:12
(2) Ну судя по "первоначально планировал сделать обрезание базы путем переноса нужных документов (за последний период) в пустую базу" (ноу комментс) лёгких путей Вы не ищите.

В чем суть этого обмена, что именно КД2 нужна, ну по большому счёту не для 7ки она делалась. За то время, что Вы КД2 пытаетесь научить делать нужные вещи, обмен можно было написать с нуля без КД и пр.

Подкину ExImDocs есть такая штука, в Волшебном каталоге наверняка найдётся
   Mikhail Volkov
 
4 - 09.02.19 - 03:03
(3) ExImDocs не пробовал, пробовал UNIVERSAM.ert - та же история... не переносятся не предопределенные счета.
Хотелось бы в КД2 решить эту проблему. Вроде нашел http://catalog.mista.ru/public/142772/, но там как-то сложно решают этот вопрос... за счет дополнительных правил (вроде моих доработок в Обрезать базу).
Конечно КД2 сделана прежде всего для конвертации в 8-ку, а не наоборот. Но есть люди дорабатывают ее для конвертации в 7-ку. Хороший пример http://catalog.mista.ru/public/240825/.
   Casey1984
 
5 - 09.02.19 - 11:39
(0) "Может кто решал эту проблему, отзовитесь!?"
Для этого мне нужно видеть правила.
   Mikhail Volkov
 
6 - 09.02.19 - 17:53
(5) КД2 для Планы счетов создало одно ПКО Основной с объектами источника и приемника ПланСчетовСсылка.Основной, с заполненной вкладкой "Конвертация значений", где перечислены все предопределенные счета. Это ПКО переименовал в ОсновнойПредопределенный, и создал новое ПКО Основной с пустой вкладкой "Конвертация значений", с 3-мя ПКС: Код, Наименование, ПометкаУдаления, с поиском по коду. В ПКС_Основной_Код_ПередВыгрузкойСвойства_1_8 вписал:
Если ТипЗначенияСтр(Источник) = "Строка" Тогда
    Значение = Источник;
ИначеЕсли ТипЗначенияСтр(Источник) = "Счет" Тогда
    Значение = Источник.Код;
КонецЕсли;
В ПКС_Основной_Наименование_ПередВыгрузкойСвойства_2_8 вписал:
Если ТипЗначенияСтр(Источник) = "Строка" Тогда
    Отказ = 1;
ИначеЕсли ТипЗначенияСтр(Источник) = "Счет" Тогда
    Значение = Источник.Наименование;
КонецЕсли;
как в книжке Бояркин и Филатов Конвертация данных 2 на стр. 155. Там же написано: "Заметим, что при переносе данных из информационной базы на платформе 1С:Предприятия 7.7 в информационную базу на платформе 1С:Предприятия 8 возможна только настройка правил конвертации значений". Но 8, а не 7.7! А то что когда ПКЗ заполнено ПКС не работает еще по справочникам заметил, и надо делать различные ПКО с ПКЗ и ПКС.
Ну во всех документах, в которых используются Счета в ПКС прописал, например, в ПКС_ПриходныйОрдер_КоррСчет_ПередВыгрузкойСвойства_11_14:
Если ПустоеЗначение(Источник.КоррСчет) = 1 Тогда
    Отказ = 1;
ИначеЕсли Предопределенный(Источник.КоррСчет.Код) = 0 Тогда
    ИмяПКО = "Основной";
Иначе
    ИмяПКО = "ОсновнойПредопределенный";
КонецЕсли;
Функцию Предопределенный с параметром КодСчета разместил на вкладке Алгоритмы/Запросы:
Если (КодСчета = "68.10")
 Или (КодСчета = "80.1")
 Или (КодСчета = "80.2") Тогда
    Возврат 0;
КонецЕсли;
Возврат 1;
Это все мои изменения в правилах созданных КД2.

Смотрю файл выгрузки: там где счет предопределенный:
- <Свойство Имя="КоррСчет" Тип="ПланСчетовСсылка.Основной">
  <Значение>86.3</Значение> 
  </Свойство>
а где нет:
- <Свойство Имя="КоррСчет" Тип="ПланСчетовСсылка.Основной">
- <Ссылка Нпп="10">
- <Свойство Имя="Код" НеЗамещать="true" Тип="Строка">
  <Значение>80.1</Значение> 
  </Свойство>
  </Ссылка>
  </Свойство>
Так же как для типа СправочникСсылка. Но для СправочникСсылка успешно загружается, а для ПланСчетовСсылка - игнорируется!?
Вроде функцию УстановитьРеквизитV8() надо править в обработке V77Imp.ert. Но что и как, не знаю...
Автор http://catalog.mista.ru/public/240825/ ее дорабатывал для правильной загрузки признаков Проведен и ПометкаУдаления. Может кто дорабатывал для не предопределенных счетов?
   hhhh
 
7 - 09.02.19 - 19:11
(6) Если ТипЗначенияСтр(Источник) = "Строка" Тогда

источник не строка, что то вы дурь какую-то написали
   Mikhail Volkov
 
8 - 09.02.19 - 19:26
(7) Да, в моем случае не "Строка", а всегда "Счет". Эту дурь написали Бояркин и Филатов в книжке Конвертация данных 2 на стр. 155.
   hhhh
 
9 - 09.02.19 - 19:37
по каким полям поиск в базе идет. и может так всё-таки

Значение = СокрЛП(Источник.Код);

потому что для семерки это как раз важно.
   Casey1984
 
10 - 10.02.19 - 10:08
(8) Это не дурь. Ниже на странице сказано, для чего это написано, у них пример достаточно универсального решения. Ваш случай индивидуален и зачем вы просто скопировали из книги это к вам вопрос.

Смотрите: У вас два типа счетов: предопределённые, для которых вам нужно настроить правила конвертации значений (ПКЗ) и заданные в режиме предприятия для которых вам нужно настроить поиск по какому-то полю. В правило конвертации объектов (ПКО) "Счет" или как оно у вас называется, у вас передаётся элемент плана счетов, так? Если он соответствует какому-то ПКЗ, обработка загрузки/выгрузки выгрузит нужное имя предопределённого элемента и по нему найдёт значение при загрузке. Если у вас счёт задан в режиме предприятия, этого не произойдёт, тогда работает поиск по полям, и тут вам в правиле конвертации поля, по которому вы будете искать счёт нужно прописать для каждого счета нужное значение поля поиска на стороне приёмника. По типу такого:

Если Источник.Код = "ХХХ" Тогда
Значение = "YYY";// код счета на стороне приёмника

ИначеЕсли
...
Иначе
Значение = Источник.Код;// здесь код счета источника и приёмника совпадают

КонецЕсли;
 
 Рекламное место пустует
   Casey1984
 
11 - 10.02.19 - 10:11
(8) да и замечание (9) я бы тоже применил, обернул бы значение в СокрЛП().
   Casey1984
 
12 - 10.02.19 - 10:23
(6) А в этом примере счету 80.1 в приемнике какой счет соответствует? Не 80.01?
   Casey1984
 
13 - 10.02.19 - 10:45
(12) Вопрос снимаю, у вас 7.7 -> 7.7)
   Mikhail Volkov
 
14 - 10.02.19 - 12:13
(11) Обернул: Значение = СокрЛП(Источник.Код); Но это не чего не изменило, не предопределенные счета не загружаются в приемную базу!? Хотя в файле выгрузке:
- <Объект Нпп="10" Тип="ПланСчетовСсылка.Основной" ИмяПравила="Основной">
- <Ссылка Нпп="10">
- <Свойство Имя="Код" НеЗамещать="true" Тип="Строка">
  <Значение>80.1</Значение> 
  </Свойство>
  </Ссылка>
- <Свойство Имя="Наименование" НеЗамещать="true" Тип="Строка">
  <Значение>Обязательный паевый фонд</Значение> 
  </Свойство>
- <Свойство Имя="ПометкаУдаления" Тип="Число">
  <Пусто /> 
  </Свойство>
  </Объект>
А когда ПКС ПередВыгрузкойСвойства Код и Наименование не были заполнены, то Значение было <Пусто />.
(12) Конфигурация одна у источника и приемника, практически копия, разница по числу документов, в приемнике за прошлые года нет.
   Casey1984
 
15 - 10.02.19 - 12:39
(14) Решение очень простое: вам надо для счетов, созданных в режиме предприятие, создать в КД необходимые элементы списка "Значения объектов".

Действительно, поковырял код обработки загрузки, она только так, через предопределенные элементы и загружает :-/
   Casey1984
 
16 - 10.02.19 - 12:43
(15) Вот так: https://cdn1.savepice.ru/uploads/2019/2/10/351bbbb8f4070eb85b0343032ad0c670-full.png

И КД будет выгружать их также как и счета, созданные в конфигураторе, а обработка загрузки найдет их по коду.
   Mikhail Volkov
 
17 - 10.02.19 - 12:50
(16) Не открывается: Этот сайт не может обеспечить безопасное соединение
   Casey1984
 
18 - 10.02.19 - 12:52
(17) Щас на почту пришлю в BMP :-)
   Casey1984
 
19 - 10.02.19 - 12:57
(17) Ушло на почту, картинка BMP. Сайт у меня через последний Firefox на Win 7 открывается, хз.
   Mikhail Volkov
 
20 - 10.02.19 - 13:31
(19) На ПКЗ можно только предопределенные значения выбирать?! Или свои создавать в Справочнике Значений объектов?
   Casey1984
 
21 - 10.02.19 - 13:36
(20) Я не понял вопроса, я же пишу, создать там где нет и очевидно, настроить соответствие.
   Mikhail Volkov
 
22 - 10.02.19 - 14:07
(21) У меня 2 ПКО для Планы счетов: ОсновнойПредопределенный с заполненным ПКЗ предопределенными счетами, без ПКС, и Основной с пустой ПКЗ, и ПКС: Код, Наименование, ПометкаУдаления, с поиском по коду. В какой добавить свои значения, в Основной? Или ОсновнойПредопределенный, а ПКО Основной вообще удалить?
   Casey1984
 
23 - 10.02.19 - 14:09
(22) В любой. ПКС уже не нужны, можно отключать.
   Mikhail Volkov
 
24 - 10.02.19 - 15:13
(23) Да, все загрузилось без ошибок! В файле выгрузки в случае не предопределенныго счета (вместо (14)):
-<Свойство Имя="КоррСчет" Тип="ПланСчетовСсылка.Основной">
<Значение>80.1</Значение>
</Свойство>
т.е. второе ПКО не нужно, только с ПКЗ с добавленными не предопределенными счетами. Спс.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует