Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Перенос данных с 1с Бухгалтерия 7.7 в Комплексный учет 8.2 3 страниц V  < 1 2 3 >          
meverikxp Подменю пользователя
сообщение 04.01.12, 13:39
Сообщение #21

Оратор
Иконка группы
Группа: Местный
Сообщений: 334
Из: Ровно
Спасибо сказали: 10 раз
Рейтинг: 0

Цитата(5_kopeek @ 04.01.12, 13:21) *
Создать при загрузке новый элемент справочника Организации по данным из аналогичного элемента справочника Фирмы выгружаемой базы.

Зачем? Он и так создан. Просто нужно присвоить ему значение, Но как это сделать в конвертации данных?


Signature
Самая нелюбимая пословица сапёров: одна нога здесь, другая там...

MATEVI Подменю пользователя
сообщение 04.01.12, 14:15
Сообщение #22

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2203
Из: Одесса
Спасибо сказали: 968 раз
Рейтинг: 796.3

Цитата(meverikxp @ 04.01.12, 13:39) *
Зачем? Он и так создан. Просто нужно присвоить ему значение, Но как это сделать в конвертации данных?

Перед выгрузкой - Значение = Параметры.Организация;

meverikxp Подменю пользователя
сообщение 04.01.12, 14:35
Сообщение #23

Оратор
Иконка группы
Группа: Местный
Сообщений: 334
Из: Ровно
Спасибо сказали: 10 раз
Рейтинг: 0

Цитата(MATEVI @ 04.01.12, 14:15) *
Перед выгрузкой - Значение = Параметры.Организация;

Сделал так, но 7-ка при выгрузке пишет:
Цитата
Ошибка получения значения свойств объекта.
Объект."Сотрудник", свойство: Организация

И что с этим делать


Signature
Самая нелюбимая пословица сапёров: одна нога здесь, другая там...

MATEVI Подменю пользователя
сообщение 04.01.12, 15:24
Сообщение #24

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2203
Из: Одесса
Спасибо сказали: 968 раз
Рейтинг: 796.3

Цитата(meverikxp @ 04.01.12, 14:35) *
Сделал так, но 7-ка при выгрузке пишет:

И что с этим делать

Добавить параметр Организация. Взять типовые правила посмотреть что у чему.

meverikxp Подменю пользователя
сообщение 04.01.12, 15:40
Сообщение #25

Оратор
Иконка группы
Группа: Местный
Сообщений: 334
Из: Ровно
Спасибо сказали: 10 раз
Рейтинг: 0

Цитата(MATEVI @ 04.01.12, 15:24) *
Добавить параметр Организация. Взять типовые правила посмотреть что у чему.

При выгрузке список параметров пуст и нет возможности добавить


Signature
Самая нелюбимая пословица сапёров: одна нога здесь, другая там...

meverikxp Подменю пользователя
сообщение 04.01.12, 17:33
Сообщение #26

Оратор
Иконка группы
Группа: Местный
Сообщений: 334
Из: Ровно
Спасибо сказали: 10 раз
Рейтинг: 0

Пробую сделать обработку сам. создал соединение с базой 7.7 следующим кодом

Перем База,ЕстьПодключение;
Процедура КнопкаВыполнитьНажатие(Кнопка)
    База="";
    База=Новый COMОбъект("V77.Application"); 
    
    Попытка   
        СтрокаПодключения = "/D"""+СокрЛП(ПутьКБазе)+""" /N"""+СокрЛП(Пользователь)+""" /P"""+СокрЛП(Пароль)+"""";
        Открыта=База.Initialize(База.RMTrade,СтрокаПодключения,"NO_SPLASH_SHOW");
        
        Если Открыта Тогда
            ЕстьПодключение = Истина;
        Иначе
            Предупреждение("Ошибка при подключении!");
            ЕстьПодключение = Ложь;
        КонецЕсли;    
    Исключение
        Предупреждение("Ошибка при подключении!");
        ЕстьПодключение = Ложь;
    КонецПопытки;
    
    УправлениеДоступностью();
    
    
    
КонецПроцедуры

Процедура ПутьКБазеНачалоВыбора(Элемент, СтандартнаяОбработка)
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
    Диалог.Заголовок = "Укажите путь к базе ...";

    Если Не Диалог.Выбрать() Тогда
        Возврат;
    КонецЕсли;          
    
    ПутьКБазе = Диалог.Каталог;
КонецПроцедуры
Процедура УправлениеДоступностью()
    
    Если ЕстьПодключение Тогда
        ЭлементыФормы.НадписьПодключения.Заголовок = "База успешно подключена";
        ЭлементыФормы.НадписьПодключения.ЦветТекста = WebЦвета.Зеленый;
    Иначе
        ЭлементыФормы.НадписьПодключения.Заголовок = "База не подключена";
        ЭлементыФормы.НадписьПодключения.ЦветТекста = WebЦвета.Красный;
        
    КонецЕсли;
КонецПроцедуры;

Но теперь возник следующий вопрос: как из этого соединения взять данные, как к ним обращаться?


Signature
Самая нелюбимая пословица сапёров: одна нога здесь, другая там...

Ardi Подменю пользователя
сообщение 05.01.12, 1:38
Сообщение #27

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Функция ОткрытьФирму(Путь,Пользователь,Пароль="")  
    Бух=0;
    Бух = новый COMОбъект("v77.application"); //СоздатьОбъект("V77.Application");
    Открыта = Бух.Initialize(Бух.RMTrade, "/d"+Путь+" /N"+Пользователь+?(Пароль="",""," /P"+Пароль),"NO_SPLASH_SHOW");
    //Открыта = Бух.Initialize(Бух.RMTrade, "","NO_SPLASH_SHOW");
    
    Если Открыта = 0 Тогда
        Предупреждение("Ошибка открытия информационной базы "+Путь);
        Возврат 0;
    КонецЕсли; 
    Возврат 1;
КонецФункции


Процедура КнопкаВыполнитьНажатие(Кнопка)
    ВидНоменклатурыТовар=Справочники.ВидыНоменклатуры.НайтиПоКоду("000000001");
    едИзмеренияШтука=Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду("796");
    Если ОткрытьФирму(ПутьКБазе,"Админов","")=0 Тогда 
        Возврат;
    КонецЕсли;
    спр=Бух.CreateObject("Справочник.Номенклатура");  
    спр.ВыбратьЭлементы();
    Пока спр.ПолучитьЭлемент()=1 цикл
        НайденнаяСсылка=Справочники.Номенклатура.НайтиПоКоду(спр.код);
        если НайденнаяСсылка = Справочники.Номенклатура.ПустаяСсылка() Тогда
            Если спр.ЭтоГруппа()=1 Тогда
                нов= Справочники.Номенклатура.СоздатьГруппу();    
            Иначе
                нов= Справочники.Номенклатура.СоздатьЭлемент();
            КонецЕсли;            
        иначе
            нов=НайденнаяСсылка.ПолучитьОбъект();
        КонецЕсли;
        
        
        Если спр.ЭтоГруппа()=1 Тогда
            нов.Код=спр.код;
            нов.Наименование=спр.Наименование;
            нов.ВидНоменклатуры = ВидНоменклатурыТовар;
        Иначе
            нов.Код=спр.код;
            нов.Наименование=спр.Наименование;
            нов.НаименованиеПолное=спр.Наименование;
            нов.ВидНоменклатуры = ВидНоменклатурыТовар;
            нов.БазоваяЕдиницаИзмерения =едИзмеренияШтука;
            нов.СтавкаНДС=СтавкаНДС(спр);
        КонецЕсли;
        нов.Родитель=Родитель(спр.Родитель.Код);
        
        нов.записать();
        если спр.пометкаУдаления()=1 Тогда
            нов.УстановитьПометкуУдаления();
        КонецЕсли;
        тп=ТабличноеПоле1.Добавить();
        тп.ссылка=нов.Ссылка;
        сообщить(спр.ЭтоГруппа());
        Если спр.ЭтоГруппа()=0 Тогда
            нов.ЕдиницаХраненияОстатков=ДопЕдИзм(нов.Ссылка);
            нов.ЕдиницаДляОтчетов=нов.ЕдиницаХраненияОстатков;
            нов.Записать();
        КонецЕсли;
        //сообщить(спр.Наименование);
        //сообщить(спр.Код);
        //сообщить(спр.БазоваяЕдиница.наименование);
    Конеццикла;
    //Док=СоздатьОбъект("Документ.БанковскаяВыписка");
    //Док.ВыбратьДокументы(НачДата,КонДата);
    //Пока Док.ПолучитьДокумент()=1 Цикл      
    //    Состояние(""+Док.ТекущийДокумент());
    //    Если Док.ТекущийДокумент().КоличествоСтрок()=0 Тогда
    //        Продолжить;
    //    КонецЕсли;
    //    ОбработатьБВ(Док);
    //    //Возврат;
    //КонецЦикла;
    
    
    Бух=0;
    //Предупреждение("Обработка завершена!");
    
КонецПроцедуры


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

Спасибо сказали: meverikxp,

meverikxp Подменю пользователя
сообщение 10.01.12, 11:04
Сообщение #28

Оратор
Иконка группы
Группа: Местный
Сообщений: 334
Из: Ровно
Спасибо сказали: 10 раз
Рейтинг: 0

Цитата(Ardi @ 05.01.12, 1:38) *
Функция ОткрытьФирму(Путь,Пользователь,Пароль="")  
    ....
    
КонецПроцедуры


Сделал так вроде получилось, но есть проблема с перенесением оклада, в базе 7.7 он есть, а на 8.2 значение "COMОбъект. Почему???

Сообщение отредактировал meverikxp - 10.01.12, 11:20


Signature
Самая нелюбимая пословица сапёров: одна нога здесь, другая там...

Ardi Подменю пользователя
сообщение 10.01.12, 11:36
Сообщение #29

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

В отладчике писать склад.Код, склад.наименование а не склад

Тогда отладчик отобразит.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

shurik_shurik Подменю пользователя
сообщение 10.01.12, 12:01
Сообщение #30

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 124
Из: Полтавская обл.
Спасибо сказали: 72 раз
Рейтинг: 0

Цитата(meverikxp @ 10.01.12, 12:04) *
Сделал так вроде получилось, но есть проблема с перенесением оклада, в базе 7.7 он есть, а на 8.2 значение "COMОбъект. Почему???

Потому, что в базе 7.7 это периодический реквизит.

meverikxp Подменю пользователя
сообщение 10.01.12, 12:10
Сообщение #31

Оратор
Иконка группы
Группа: Местный
Сообщений: 334
Из: Ровно
Спасибо сказали: 10 раз
Рейтинг: 0

Цитата(shurik_shurik @ 10.01.12, 12:01) *
Потому, что в базе 7.7 это периодический реквизит.

Это ссылочный реквизит который ссылается на справочник Должности.Оклад, подскажите как его оттуда достать, пробовал Должности.Оклад не получается?


Signature
Самая нелюбимая пословица сапёров: одна нога здесь, другая там...

shurik_shurik Подменю пользователя
сообщение 10.01.12, 12:31
Сообщение #32

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 124
Из: Полтавская обл.
Спасибо сказали: 72 раз
Рейтинг: 0

Цитата(meverikxp @ 10.01.12, 13:10) *
Это ссылочный реквизит который ссылается на справочник Должности.Оклад, подскажите как его оттуда достать, пробовал Должности.Оклад не получается?

нужно создать новый COM объект для справочника Должности, и использовать НайтиЭлемент по значению реквизита первого справочника

Сообщение отредактировал shurik_shurik - 10.01.12, 12:32

meverikxp Подменю пользователя
сообщение 10.01.12, 12:41
Сообщение #33

Оратор
Иконка группы
Группа: Местный
Сообщений: 334
Из: Ровно
Спасибо сказали: 10 раз
Рейтинг: 0

Цитата(shurik_shurik @ 10.01.12, 12:31) *
нужно создать новый COM объект для справочника Должности, и использовать НайтиЭлемент по значению реквизита первого справочника


Делаю так:

Спр77=База.CreateObject("Справочник.Сотрудники");
    Спр77.ВыбратьЭлементы();
    
    
Пока спр77.ПолучитьЭлемент()=1 Цикл
...
 Оклад77= База.CreateObject("Справочник.Должности");
        Должность = Оклад77.НайтиЭлемент(Спр77.Должность);
        Оклад = Должность.Оклад;
...
КонецЦикла

Пишет: Значение не является значением объектного типа (Оклад)
?????


Signature
Самая нелюбимая пословица сапёров: одна нога здесь, другая там...

shurik_shurik Подменю пользователя
сообщение 10.01.12, 13:08
Сообщение #34

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 124
Из: Полтавская обл.
Спасибо сказали: 72 раз
Рейтинг: 0

Цитата(meverikxp @ 10.01.12, 13:41) *
Пишет: Значение не является значением объектного типа (Оклад)

В этом случае, оклад уже явно периодический реквизит. Можно попробовать дописать метод Получить(Дата).
Или лучше добавить строку Оклад77.ИспользоватьДату(<дата>).
И вынесете создание комобъекта на уровень выше относительно цикла обхода справочника сотрудники.
Кстати, строку тоже можно вписать до цикла.

meverikxp Подменю пользователя
сообщение 10.01.12, 13:34
Сообщение #35

Оратор
Иконка группы
Группа: Местный
Сообщений: 334
Из: Ровно
Спасибо сказали: 10 раз
Рейтинг: 0

Цитата(shurik_shurik @ 10.01.12, 13:08) *
В этом случае, оклад уже явно периодический реквизит. Можно попробовать дописать метод Получить(Дата).
Или лучше добавить строку Оклад77.ИспользоватьДату(<дата>).
И вынесете создание комобъекта на уровень выше относительно цикла обхода справочника сотрудники.
Кстати, строку тоже можно вписать до цикла.

Сделал так:
Спр77=База.CreateObject("Справочник.Сотрудники");
    Спр77.ВыбратьЭлементы();
    Оклад77= База.CreateObject("Справочник.Должности");
    Оклад77.ИспользоватьДату('20111231');    
    
Пока спр77.ПолучитьЭлемент()=1 Цикл
        
Если Спр77.ЭтоГруппа()=0 Тогда    
        
        Наименование = Спр77.Наименование;
        Должность = Спр77.Должность;
        Должность = Оклад77.НайтиЭлемент(Спр77.Должность);
        Оклад = Должность.Оклад;
КонецЕсли;

    КонецЦикла;

Но ошибка та же

Сообщение отредактировал meverikxp - 10.01.12, 13:36


Signature
Самая нелюбимая пословица сапёров: одна нога здесь, другая там...

shurik_shurik Подменю пользователя
сообщение 10.01.12, 13:45
Сообщение #36

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 124
Из: Полтавская обл.
Спасибо сказали: 72 раз
Рейтинг: 0

Цитата(meverikxp @ 10.01.12, 14:34) *
Но ошибка та же

Если Вас не затруднит, полный текст ошибки, предварительно переименовав переменную Оклад на Оклад8, например.
Кстати, в методе ИспользоватьДату(), дату лучше указать в виде '31.12.11'

mister-x Подменю пользователя
сообщение 10.01.12, 13:47
Сообщение #37

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1422 раз
Рейтинг: 0

попробуйте всі методи і системні властивості бази до якої звертаєтесь (7.7) замінити на англ. відповідники - можливо, тут собака зарита
ЗІ. мені помогло коли я із бази 7.7 підключався до іншої бази 7.7 для переносу даних по OLE

meverikxp Подменю пользователя
сообщение 10.01.12, 13:56
Сообщение #38

Оратор
Иконка группы
Группа: Местный
Сообщений: 334
Из: Ровно
Спасибо сказали: 10 раз
Рейтинг: 0

Цитата(mister-x @ 10.01.12, 13:47) *
попробуйте всі методи і системні властивості бази до якої звертаєтесь (7.7) замінити на англ. відповідники - можливо, тут собака зарита
ЗІ. мені помогло коли я із бази 7.7 підключався до іншої бази 7.7 для переносу даних по OLE

Я точно не знаю как они будут по англ.

Цитата(shurik_shurik @ 10.01.12, 13:45) *
Если Вас не затруднит, полный текст ошибки, предварительно переименовав переменную Оклад на Оклад8, например.
Кстати, в методе ИспользоватьДату(), дату лучше указать в виде '31.12.11'

Теперь ошибка выглядит так:
Значение не является значением объектного типа (Оклад)
        Оклад8 = Должность.Оклад;

И как по другому написать дату формат в виде '31.12.11' - не определяет пишет " Неправильная константа типа Дата"


Signature
Самая нелюбимая пословица сапёров: одна нога здесь, другая там...

mister-x Подменю пользователя
сообщение 10.01.12, 14:19
Сообщение #39

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1422 раз
Рейтинг: 0

Цитата
Я точно не знаю как они будут по англ.
тут http://pro1c.org.ua/index.php?showtopic=5893 все є

meverikxp Подменю пользователя
сообщение 10.01.12, 14:21
Сообщение #40

Оратор
Иконка группы
Группа: Местный
Сообщений: 334
Из: Ровно
Спасибо сказали: 10 раз
Рейтинг: 0

Цитата(mister-x @ 10.01.12, 14:19) *

А пароль к архиву какой?


Signature
Самая нелюбимая пословица сапёров: одна нога здесь, другая там...

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


3 страниц V  < 1 2 3 >
Тема закрыта Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 04.07.25, 5:34
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!