[1] [2] |
Заполнение справочников в 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? Заранее, спасибо. |
может наоборот ? из 8.3 подключаться к 7.7 ? |
Не надо никакого "СОМ". БП3 (и БП2) благополучно сосут из ЗиК77 выгрузку проводок. Без всякого OLE. При первом же переносе в БП попадут сотрудники, засветившиеся в проводках. Если установить опцию "сводно" - то, естественно, не попадут. Перетаск зарплатного учета в БП из ЗиК77 довольно муторный: мало перетащить справочник Сотрудники (кстати, при перетаске он должен правильно и корректно улечься в [b]два[/b] справочника БП + [b]регистры сведений[/b]). Надо еще перенести прежние расчеты по взносам в [b]регистры накопления[/b]. А если не с начала года, то еще и по НДФЛ. А иначе не словите удачи. Что-то обязательно словите, конечно, но этот улов вам не понравится. Так штА, прежде чем делать, надо думать. И думать в присутствии обеих конфигураций. |
+2 Да, забыл упомянуть: многие регистры (накопительные - точно) не запишутся без [b]регистратора[/b]. У текущих-то данных регистратор найдется (док бухучета по зарплате), а вот для данных прошлых лет нужно формировать доки перенесенных остатков. |
(2,3) а где в (0) упоминание именно про ЗиК ? не факт что там ЗИК и не факт что типовой ... мну бы все таки послушал (0) с более расширенным такскать , вапросом ;)) |
(4) думаешь при вопросе "Как задать путь к базе 1С8.3 в конфигурации 1С7.7?" - будет какой-то расширенный вменяемый вопрос? |
[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] ну тады так, что ли ;)) |
4-101 > Читаем тему внимательно: "[em][b]К[/b]адры [b]и[/b] [b]з[/b]арплату пока переносить не планируем[/em]". И дале про "1С 7.7". Так где у нас в 7.7 [em]Кадры и Зарплате[/em]? В УСН? не, не угадал? |
Руками, руками и еще раз руками. Получится быстрее и правильнее |
(7) комплексная например ... продолжать список конфигураций ? |
Большое всем спасибо!!!! Конфигурация 7.7 самописаная. Комплексная 1С. В 1С 7.7 в модуле кадровое перемещение при проведении документа хочу подключиться к 1с 8.3 и заполнить в нем справочник Сотрудники и регистры по изменению кадровых данных. Нашла в интернете: ПутьКБазе = "d:\Базы 8.3\РабБаза\"; Логин = "Администратор"; Пароль = ""; Коннектор = СоздатьОбъект("V83.COMConnector"); v8 = Коннектор.Connect("File=""" + ПутьКБазе + """;Usr=""" + СокрЛП(Логин) + """;Pwd=""" + СокрЛП(Пароль) + """;"); Если база развернута не как SQL, то подключиться получилось. У нас же база 8 развернута под SQL 2012. Как к ней подключиться? |
Подключаться надо из 7, т.к. Кадры будут работать в 7 |
[url]http://www.forum.mista.ru/topic.php?id=458777[/url] примеры тут были |
+ там правда OLE а не com но как бэээ мысля ;)) из той же темы |
[url]http://programmist1s.ru/podklyuchenie-k-1s-8-2-po-com/[/url] вот с комом |
ОГРОМНОЕ СПАСИБО!!!! ПОПРОБУЮ!!! ВСЕХ ВАМ БЛАГ!!!! |
К 8.3 из 7 подключиться получилось. Еще раз спасибо. Пытаюсь сохранить из 1С7 в 1С8 изменившуюся информацию после кадрового перемещения, подразделение и должность. Они в 8 хранятся в регистре сведений "КадровыеДанныеСотрудников". ТабНомер - реквизит в 7 с табельным номером. Увы, увы... Вот текст модуля. Что не так? Помогите, пожалуйста?! V8=СоздатьОбъект("V83.COMConnector"); ctl = V8.Connect("Srvr=serv1c82;Ref=1c8_test;Usr=Администратор;Pwd="); СпрФизическиеЛица=ctl.Справочники.ФизическиеЛица; ФизЛицоСсылка= СпрФизическиеЛица.НайтиПоКоду(ТабНомер); Если ФизЛицоСсылка=СпрФизическиеЛица.ПустаяСсылка() Тогда Сообщить("Не нашли ФЛ"); Иначе ФизЛицоОбъект=ФизЛицоСсылка.ПолучитьОбъект(); КонецЕсли; КадровыеДанныеСотрудников= ctl.РегистрыСведений.КадровыеДанныеСотрудников.СоздатьНаборЗаписей(); КадровыеДанныеСотрудников.Отбор.Сотрудник.Установить(ФизЛицоСсылка); НоваяЗапись = КадровыеДанныеСотрудников.Добавить(); НоваяЗапись.Сотрудник=ФизЛицоСсылка; НоваяЗапись.ПодразделениеОрганизации=Подразделение; НоваяЗапись.Должность=Должность; НоваяЗапись.Период = ДатаДок; КадровыеДанныеСотрудников.Записать(); Ругается при проведении документа "Кадровое перемещение" на строку ФизЛицоОбъект=ФизЛицоСсылка.ПолучитьОбъект(); |
А руками уж давно бы набили ) Удачи ) |
Извините, но Вы видимо не поняли задачу. Это не разовое присоединение к базе. На нашем предприятии работает около 1000 человек. Бухгалтерию переводят на 8, но и то не всю - зарплата и кадры остаются в 7. Кроме этого, все производственные задачи, так же остаются в 7. |
Заменила поиск по табельному номеру на поиск по наименованию (т.е. по ФИО). Что-то получилось!!! :)) Буду разбираться дальше. Огромное спасибо 101 за то, что направили в нужном направлении. |
16-Галина55555 > Вообще-то, [em]ФизЛицоСсылка= СпрФизическиеЛица.НайтиПоКоду(ТабНомер);[/em] в случае неудачи может вернуть и [b][em]Неопределено[/em][/b]. А регистр КадровыеДанныеСотрудников точно без регистратора? Меня терзают смутные сомнения. Особенно при виде [em]НоваяЗапись.Период = ДатаДок[/em]. И зная, что аналогичный регистр в БП3 (несколько с другим названием) именно подчинен регистратору. И какая-то странная идея: загружать "восьмерошную" базу из "семерки". Вы ведь отказались вести зарплату в v77, да? Иначе (при опции "Ведение зарплаты во внешней программе") соответствующие "зарплатные" блоки отключаются. Вот что передает "внешняя программа" (в док типа "отражение зарплаты..."), то и используется. У вас, стесняюсь спросить, есть Постановщик задачи? Нет, не Начальник. И не Главный Начальник. Специалист? |
19-Галина55555 > Отныне кадровики перестанут принимать тёзок, а тех, кто есть, срочно уволят? |
Мдя...) какая я то тайна покрытая мраком) |
Вынуждена снова к Вам обратиться. Я была так рада, что получилось подключиться из 7 к 8, и даже внести какие-то изменения, что не придала серьезного внимания на то, что у меня в 8 после проведения в 7 кадрового перемещения в регистре удалились все предыдущие записи по сотруднику. Как оказалось причина в том, что у меня в 7 в модуле заполнения данных команда Записать стоит без параметра: КадровыеДанныеСотрудников.Записать(); По умолчанию это означает, что при записи все предыдущие записи удаляются. Чтобы этого не происходило, надо КадровыеДанныеСотрудников.Записать(Ложь); Хорошо, задаю этот параметр, 7 ругается, что реквизит Ложь не задан. Пытаюсь написать так: КадровыеДанныеСотрудников.Записать(0); , не срабатывает. Понимаю, что значение параметра должно быть булевым, но как его задать в 7, чтобы сработало в 8, не знаю. Уже убилась. Заранее, спасибо. |
23-Галина55555 > Никак. В 7.7 булевых переменных нет. От слова совсем. Т.е., абсолютно. Преобразовать в булево можно только на стороне клиента. |
(23) в 77 в данном случае будет между базами так же не понимать передаваемый объект типа перечисление если не получить его через объекты (например ОЛЕ) типа число строка дата из серии ложъ=1С77.перечисление.Булево.ПорядковыйНомер(2); ЗЫ намекаю что это разные объекты |
+ предлагал же наоборот - с 1с8 подключаться к 77 и оттуда вытягивать данные |
Да уж. Приятного мало. Просто 7-ная конфигурация наша самописанная считай, что с нуля. Кадры и зарплаты я писала, учитывая свой опыт, знания типовых конфигураций, их слабые и сильные стороны. Планировался переход нами на 8, учитывая особенности нашего предприятия. И тут вышестоящая организация спускает свою конфигурацию. Вот и стоит теперь вопрос, как связаться с нашей 7. |
оптимально Изучить Конвертацию Данных и пользоваться ею ... тогда уже вопросов куда как откуда не будет ;)) практически с любых конфигураций ЗЫ где то в сети видел учебник по КД 2 в электронном виде да и - так то найти / купить не сложно - в остальном вопрос времени |
Честно, разбирались с ней. Даже переносили данные, но не в реальном времени, а один раз в день ночью по расписанию. Тут же мечталось, чтобы все было в реальном времени.:(((( Я очень давно работаю с продуктами 1с. Начинала с 6. Есть масса всего того, за что стоит уважаю эту фирму, но совсем они не посчитали нужным продумать переход с 7 на 8. Спасибо Вам за советы. Может все-таки можно малой кровью обойтись. Надежда умирает последней :))) |
можно - но имхо все таки советовал бы решить данный вопрос через либо файл, либо промежуточную учетную линию ... не писАть в модуле 77 в при записи а специальной меткой например общего реквизита документа - передан изменен непередан в 77 и обработкой в режиме полуреального времени ... (например как это сделали 1цы с типовой бухгалтерией 77 для перехода на БП 3-0) В реальном времени могут (и будут иметь место ошибки) |
А где можно посмотреть "как это сделали 1цы с типовой бухгалтерией 77 для перехода на БП 3-0"?:)) |
Попыталась в 8 внаглую в модуле набора записей регистра "КадровыеДанныеСотрудника" прописать Процедура ПередЗаписью(Отказ, Замещение) Замещение=Ложь; // Вставить содержимое обработчика. КонецПроцедуры Неа, нас на мякине не проведешь :)))((( |
в типовой 77 помощникпереходана8 и можно посмотреть как выгружается 1Сотчетность там документ ТранспортноеСообщение задействован ЗЫ в общем легче грузить не онлайн |
+ нас такой же обмен с розницей ... полуонлайн из 77 падают документы в папочку - потом из папочки по кнопочке в 8-ке обрабатываются и перекладываются в папочку рядом (автоматом), при изменении документа он опять записывается в папочку обмена откудава - опять забирается и так далее, другой вопрос что в рознице объектов то всего справочников несколько и один вид документа |
Почитайте Галина мою статью. Я в своё время заморачивался данной проблемой. Там есть интересные моменты. [url]http://1cniku.ru/Articles/V8OLE.html[/url] |
Там есть про то как из 7.7 писать булево в 8.0 Там есть про то как из 7.7 отличить неопределенно от NULL |
Большое спасибо за ссылку. Попробую разобраться. |
Уважаемый, Бертыш! Не помогло! Я в 7.7 после Ложь=ctl.ВернутьЛожь(); Сообщить(Ложь);\ Увидела, что Ложь=0. Но в 8 нет команды КадровыеДанныеСотрудников.Записать(0); а есть КадровыеДанныеСотрудников.Записать(Ложь); , где Ложь - Булево Попробовала КадровыеДанныеСотрудников.Записать(ctl.ВернутьЛожь()); Ничего. Похоже необходимо чтобы Ложь сработала на стороне 8. Попробовала обмануть 1С: в 8 в модуле набора записей регистра сведений КадровыеДанныеСотрудников прописала: Процедура ПередЗаписью(Отказ, Замещение) Замещение=Ложь; // Вставить содержимое обработчика. КонецПроцедуры Процедура ПриЗаписи(Отказ, Замещение) Замещение=Ложь; // Вставить содержимое обработчика. КонецПроцедуры Вроде в любом случае при записи я должна попадать в эти процедуры. Но нужного результата так и нет. Я понимаю, что из-за моего упрямства может возникнуть непреодолимое желание "дать мне в лоб", но так не хочется сдаваться, тем более запись ведь идет, правда, как в анекдоте, но с удалением всех предыдущих записей :))) |
хе я б поэксперементировал с транзакцией и отменой ейной ;)) чесслова афдрук после отмены он не удалит и запишет ?:)) ЗЫ какгритса танцыспубнам |
Текущее время: 12:00. Часовой пояс GMT +3. | [1] [2] |