Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Заполнение справочников в 1С8.2 из 1С 7.7, используя COM (http://forums.kuban.ru/f1040/zapolnenie_spravochnikov_v_1s8_2_iz_1s_7_7_ispol-zuya_com-6822745.html)

Galina55555 15.05.2015 15:09

Заполнение справочников в 1С8.2 из 1С 7.7, используя COM
 
Есть база 1C 7.7 под SQL 2000. Пытаемся перейти на 1С 8.3 под SQL 2012. Процесс перехода по времени будет длительным. Кадры и зарплату пока переносить не планируем. Как в 1С 7.7 организовать заполнение информации по сотрудникам в 8, используя COM? Как задать путь к базе 1С8.3 в конфигурации 1С7.7? Заранее, спасибо.

101 15.05.2015 15:38

может наоборот ? из 8.3 подключаться к 7.7 ?

VZ 15.05.2015 15:50

Не надо никакого "СОМ". БП3 (и БП2) благополучно сосут из ЗиК77 выгрузку проводок. Без всякого OLE.
При первом же переносе в БП попадут сотрудники, засветившиеся в проводках. Если установить опцию "сводно" - то, естественно, не попадут.

Перетаск зарплатного учета в БП из ЗиК77 довольно муторный: мало перетащить справочник Сотрудники (кстати, при перетаске он должен правильно и корректно улечься в [b]два[/b] справочника БП + [b]регистры сведений[/b]).
Надо еще перенести прежние расчеты по взносам в [b]регистры накопления[/b]. А если не с начала года, то еще и по НДФЛ.
А иначе не словите удачи. Что-то обязательно словите, конечно, но этот улов вам не понравится.

Так штА, прежде чем делать, надо думать. И думать в присутствии обеих конфигураций.

VZ 15.05.2015 15:56

+2 Да, забыл упомянуть: многие регистры (накопительные - точно) не запишутся без [b]регистратора[/b]. У текущих-то данных регистратор найдется (док бухучета по зарплате), а вот для данных прошлых лет нужно формировать доки перенесенных остатков.

101 15.05.2015 16:37

(2,3) а где в (0) упоминание именно про ЗиК ? не факт что там ЗИК и не факт что типовой ... мну бы все таки послушал (0) с более расширенным такскать , вапросом ;))

angro 15.05.2015 16:49

(4) думаешь при вопросе "Как задать путь к базе 1С8.3 в конфигурации 1С7.7?" - будет какой-то расширенный вменяемый вопрос?

101 15.05.2015 17:02

[url]https://yandex.ru/search/?lr=10743&text=%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C%20%D0%B8%D0%B7%201%D1%81%207.7%20%D0%B2%201%D1%81%208[/url]

ну тады так, что ли ;))

VZ 15.05.2015 18:08

4-101 > Читаем тему внимательно: "[em][b]К[/b]адры [b]и[/b] [b]з[/b]арплату пока переносить не планируем[/em]". И дале про "1С 7.7". Так где у нас в 7.7 [em]Кадры и Зарплате[/em]? В УСН? не, не угадал?

USSR 16.05.2015 09:37

Руками, руками и еще раз руками. Получится быстрее и правильнее

101 18.05.2015 08:46

(7) комплексная например ... продолжать список конфигураций ?

Galina55555 18.05.2015 08:58

Большое всем спасибо!!!!
Конфигурация 7.7 самописаная. Комплексная 1С.
В 1С 7.7 в модуле кадровое перемещение при проведении документа хочу подключиться к 1с 8.3 и заполнить в нем справочник Сотрудники и регистры по изменению кадровых данных. Нашла в интернете:
ПутьКБазе = "d:\Базы 8.3\РабБаза\";
Логин = "Администратор";
Пароль = "";
Коннектор = СоздатьОбъект("V83.COMConnector");
v8 = Коннектор.Connect("File=""" + ПутьКБазе + """;Usr=""" + СокрЛП(Логин) + """;Pwd=""" + СокрЛП(Пароль) + """;");

Если база развернута не как SQL, то подключиться получилось. У нас же база 8 развернута под SQL 2012. Как к ней подключиться?

Galina55555 18.05.2015 09:01

Подключаться надо из 7, т.к. Кадры будут работать в 7

101 18.05.2015 10:49

[url]http://www.forum.mista.ru/topic.php?id=458777[/url]
примеры тут были

101 18.05.2015 10:49

+ там правда OLE а не com но как бэээ мысля ;)) из той же темы

101 18.05.2015 10:51

[url]http://programmist1s.ru/podklyuchenie-k-1s-8-2-po-com/[/url]
вот с комом

Galina55555 18.05.2015 10:54

ОГРОМНОЕ СПАСИБО!!!! ПОПРОБУЮ!!! ВСЕХ ВАМ БЛАГ!!!!

Galina55555 18.05.2015 14:38

К 8.3 из 7 подключиться получилось. Еще раз спасибо.
Пытаюсь сохранить из 1С7 в 1С8 изменившуюся информацию после кадрового перемещения, подразделение и должность. Они в 8 хранятся в регистре сведений "КадровыеДанныеСотрудников". ТабНомер - реквизит в 7 с табельным номером. Увы, увы... Вот текст модуля. Что не так? Помогите, пожалуйста?!

V8=СоздатьОбъект("V83.COMConnector");
ctl = V8.Connect("Srvr=serv1c82;Ref=1c8_test;Usr=Администратор;Pwd=");

СпрФизическиеЛица=ctl.Справочники.ФизическиеЛица;

ФизЛицоСсылка= СпрФизическиеЛица.НайтиПоКоду(ТабНомер);
Если ФизЛицоСсылка=СпрФизическиеЛица.ПустаяСсылка() Тогда
Сообщить("Не нашли ФЛ");
Иначе
ФизЛицоОбъект=ФизЛицоСсылка.ПолучитьОбъект();
КонецЕсли;
КадровыеДанныеСотрудников= ctl.РегистрыСведений.КадровыеДанныеСотрудников.СоздатьНаборЗаписей();
КадровыеДанныеСотрудников.Отбор.Сотрудник.Установить(ФизЛицоСсылка);

НоваяЗапись = КадровыеДанныеСотрудников.Добавить();
НоваяЗапись.Сотрудник=ФизЛицоСсылка;
НоваяЗапись.ПодразделениеОрганизации=Подразделение;
НоваяЗапись.Должность=Должность;
НоваяЗапись.Период = ДатаДок;
КадровыеДанныеСотрудников.Записать();


Ругается при проведении документа "Кадровое перемещение" на строку ФизЛицоОбъект=ФизЛицоСсылка.ПолучитьОбъект();

USSR 18.05.2015 15:07

А руками уж давно бы набили ) Удачи )

Galina55555 18.05.2015 15:17

Извините, но Вы видимо не поняли задачу. Это не разовое присоединение к базе. На нашем предприятии работает около 1000 человек. Бухгалтерию переводят на 8, но и то не всю - зарплата и кадры остаются в 7. Кроме этого, все производственные задачи, так же остаются в 7.

Galina55555 18.05.2015 16:29

Заменила поиск по табельному номеру на поиск по наименованию (т.е. по ФИО). Что-то получилось!!! :)) Буду разбираться дальше. Огромное спасибо 101 за то, что направили в нужном направлении.

VZ 18.05.2015 17:13

16-Галина55555 > Вообще-то, [em]ФизЛицоСсылка= СпрФизическиеЛица.НайтиПоКоду(ТабНомер);[/em] в случае неудачи может вернуть и [b][em]Неопределено[/em][/b].
А регистр КадровыеДанныеСотрудников точно без регистратора? Меня терзают смутные сомнения. Особенно при виде [em]НоваяЗапись.Период = ДатаДок[/em]. И зная, что аналогичный регистр в БП3 (несколько с другим названием) именно подчинен регистратору.

И какая-то странная идея: загружать "восьмерошную" базу из "семерки". Вы ведь отказались вести зарплату в v77, да? Иначе (при опции "Ведение зарплаты во внешней программе") соответствующие "зарплатные" блоки отключаются. Вот что передает "внешняя программа" (в док типа "отражение зарплаты..."), то и используется.

У вас, стесняюсь спросить, есть Постановщик задачи? Нет, не Начальник. И не Главный Начальник. Специалист?

VZ 18.05.2015 17:16

19-Галина55555 > Отныне кадровики перестанут принимать тёзок, а тех, кто есть, срочно уволят?

USSR 18.05.2015 17:44

Мдя...) какая я то тайна покрытая мраком)

Galina55555 27.05.2015 10:17

Вынуждена снова к Вам обратиться. Я была так рада, что получилось подключиться из 7 к 8, и даже внести какие-то изменения, что не придала серьезного внимания на то, что у меня в 8 после проведения в 7 кадрового перемещения в регистре удалились все предыдущие записи по сотруднику. Как оказалось причина в том, что у меня в 7 в модуле заполнения данных команда Записать стоит без параметра: КадровыеДанныеСотрудников.Записать(); По умолчанию это означает, что при записи все предыдущие записи удаляются. Чтобы этого не происходило, надо КадровыеДанныеСотрудников.Записать(Ложь); Хорошо, задаю этот параметр, 7 ругается, что реквизит Ложь не задан. Пытаюсь написать так: КадровыеДанныеСотрудников.Записать(0); , не срабатывает. Понимаю, что значение параметра должно быть булевым, но как его задать в 7, чтобы сработало в 8, не знаю. Уже убилась. Заранее, спасибо.

VZ 27.05.2015 10:29

23-Галина55555 > Никак. В 7.7 булевых переменных нет. От слова совсем. Т.е., абсолютно.
Преобразовать в булево можно только на стороне клиента.

101 27.05.2015 10:39

(23) в 77 в данном случае будет между базами так же не понимать передаваемый объект типа перечисление если не получить его через объекты (например ОЛЕ) типа число строка дата

из серии ложъ=1С77.перечисление.Булево.ПорядковыйНомер(2);

ЗЫ намекаю что это разные объекты

101 27.05.2015 10:40

+ предлагал же наоборот - с 1с8 подключаться к 77 и оттуда вытягивать данные

Galina55555 27.05.2015 10:51

Да уж. Приятного мало. Просто 7-ная конфигурация наша самописанная считай, что с нуля. Кадры и зарплаты я писала, учитывая свой опыт, знания типовых конфигураций, их слабые и сильные стороны. Планировался переход нами на 8, учитывая особенности нашего предприятия. И тут вышестоящая организация спускает свою конфигурацию. Вот и стоит теперь вопрос, как связаться с нашей 7.

101 27.05.2015 11:17

оптимально Изучить Конвертацию Данных и пользоваться ею ... тогда уже вопросов куда как откуда не будет ;)) практически с любых конфигураций
ЗЫ где то в сети видел учебник по КД 2 в электронном виде да и - так то найти / купить не сложно - в остальном вопрос времени

Galina55555 27.05.2015 11:28

Честно, разбирались с ней. Даже переносили данные, но не в реальном времени, а один раз в день ночью по расписанию. Тут же мечталось, чтобы все было в реальном времени.:(((( Я очень давно работаю с продуктами 1с. Начинала с 6. Есть масса всего того, за что стоит уважаю эту фирму, но совсем они не посчитали нужным продумать переход с 7 на 8. Спасибо Вам за советы. Может все-таки можно малой кровью обойтись. Надежда умирает последней :)))

101 27.05.2015 12:20

можно - но имхо все таки советовал бы решить данный вопрос через либо файл, либо промежуточную учетную линию ... не писАть в модуле 77 в при записи а специальной меткой например общего реквизита документа - передан изменен непередан в 77 и обработкой в режиме полуреального времени ... (например как это сделали 1цы с типовой бухгалтерией 77 для перехода на БП 3-0)
В реальном времени могут (и будут иметь место ошибки)

Galina55555 27.05.2015 12:23

А где можно посмотреть "как это сделали 1цы с типовой бухгалтерией 77 для перехода на БП 3-0"?:))

Galina55555 27.05.2015 12:27

Попыталась в 8 внаглую в модуле набора записей регистра "КадровыеДанныеСотрудника" прописать
Процедура ПередЗаписью(Отказ, Замещение)
Замещение=Ложь;
// Вставить содержимое обработчика.
КонецПроцедуры

Неа, нас на мякине не проведешь :)))(((

101 27.05.2015 12:35

в типовой 77 помощникпереходана8 и можно посмотреть как выгружается 1Сотчетность там документ ТранспортноеСообщение задействован
ЗЫ в общем легче грузить не онлайн

101 27.05.2015 12:41

+ нас такой же обмен с розницей ... полуонлайн из 77 падают документы в папочку - потом из папочки по кнопочке в 8-ке обрабатываются и перекладываются в папочку рядом (автоматом), при изменении документа он опять записывается в папочку обмена откудава - опять забирается и так далее, другой вопрос что в рознице объектов то всего справочников несколько и один вид документа

Бертыш 27.05.2015 16:04

Почитайте Галина мою статью. Я в своё время заморачивался данной проблемой. Там есть интересные моменты.

[url]http://1cniku.ru/Articles/V8OLE.html[/url]

Бертыш 27.05.2015 16:08

Там есть про то как из 7.7 писать булево в 8.0
Там есть про то как из 7.7 отличить неопределенно от NULL

Galina55555 27.05.2015 16:49

Большое спасибо за ссылку. Попробую разобраться.

Galina55555 28.05.2015 12:17

Уважаемый, Бертыш! Не помогло! Я в 7.7 после Ложь=ctl.ВернутьЛожь();
Сообщить(Ложь);\

Увидела, что Ложь=0.

Но в 8 нет команды КадровыеДанныеСотрудников.Записать(0);

а есть
КадровыеДанныеСотрудников.Записать(Ложь);
, где Ложь - Булево
Попробовала КадровыеДанныеСотрудников.Записать(ctl.ВернутьЛожь());
Ничего. Похоже необходимо чтобы Ложь сработала на стороне 8.
Попробовала обмануть 1С: в 8 в модуле набора записей
регистра сведений КадровыеДанныеСотрудников
прописала:

Процедура ПередЗаписью(Отказ, Замещение)
Замещение=Ложь;
// Вставить содержимое обработчика.
КонецПроцедуры

Процедура ПриЗаписи(Отказ, Замещение)
Замещение=Ложь;
// Вставить содержимое обработчика.
КонецПроцедуры

Вроде в любом случае при записи я должна попадать в эти процедуры.
Но нужного результата так и нет.
Я понимаю, что из-за моего упрямства может возникнуть непреодолимое желание "дать мне в лоб", но так не хочется сдаваться, тем более запись ведь идет, правда, как в анекдоте, но с удалением всех предыдущих записей :)))

101 28.05.2015 12:21

хе я б поэксперементировал с транзакцией и отменой ейной ;)) чесслова афдрук после отмены он не удалит и запишет ?:))
ЗЫ какгритса танцыспубнам


Текущее время: 12:00. Часовой пояс GMT +3.