Имя: Пароль:
1C
1C 7.7
v7: Внести изменения в обработку
0 Victor80
 
01.10.14
12:54
помогите изменить обработку для выгрузки документов в другую базу. надо дописать, чтобы приходные и расходные накл. записывались после переноса на определённое время

Перем Ole;

//--------------------------------------------------------------------------------------------------
Процедура ПоказатьТаблЗнач(ВыбТаблЗнач)
    Сообщить("======================Начало=======================");
    Для А = 1 по ВыбТаблЗнач.КоличествоСтрок() Цикл
        Значение = "";
        Для Ф = 1 по ВыбТаблЗнач.КоличествоКолонок() Цикл
            Значение = Значение + " | " + ВыбТаблЗнач.ПолучитьЗначение(А,Ф);
        КонецЦикла;
        Сообщить(""+Значение);
    КонецЦикла;    
    Сообщить("======================Конец========================");
КонецПроцедуры

//--------------------------------------------------------------------------------------------------
Процедура ВыборКаталога(ИмяФайла)
    
    Если ФС.ВыбратьКаталог(ИмяФайла, "Выберите каталог БД источника",) = 1 Тогда
        ФормКаталогИБИсточника = СокрЛП(ИмяФайла) + "\";
    КонецЕсли;

КонецПроцедуры // ВыборКаталога()

//------------------------------------------------------------------------------------------------
Процедура ПриНачалеВыбораЗначения(ИдЭлементаДиалога, Фл)
    
    Если    ИдЭлементаДиалога = "ФормКаталогИБИсточника" Тогда
            
        ВыборКаталога(ФормКаталогИБИсточника);
        
    КонецЕсли;
    
КонецПроцедуры // ПриНачалеВыбораЗначения()

//--------------------------------------------------------------------------------------------------
Процедура ЗаполнитьТаблицу()
    
    Если ТаблицаДокументов.КоличествоСтрок() > 0 Тогда
        Если Вопрос("Перед заполнением таблица будет очищена,
                    |а существующие строки удалены. Продолжить?","ОК+Отмена") = "ОК" Тогда
            ТаблицаДокументов.УдалитьСтроки();
        Иначе
            Возврат;
        КонецЕсли;
    КонецЕсли;

    Состояние("Заполняем таблицу с документами..................");

    Doc = Ole.CreateObject("Документ");//.РасходнаяНакладная");
//    Doc.УстановитьФильтр(1,0); // только проведенные
    Doc.ВыбратьДокументы(НачДата, КонДата);
    Пока Doc.ПолучитьДокумент() = 1 Цикл
        Если (Doc.Вид()<>"РасходнаяНакладная")И(Doc.Вид()<>"ПриходнаяНакладная") Тогда
            Продолжить;
        КонецЕсли;
        ТаблицаДокументов.НоваяСтрока();
        ТаблицаДокументов.Пометка    = 1;
        ТаблицаДокументов.ДокВид    = Doc.Вид();
        ТаблицаДокументов.ДокДата    = Doc.ДатаДок;
        ТаблицаДокументов.ДокНомер    = Doc.НомерДок;
        ТаблицаДокументов.Инфо        = СокрЛП(Doc.Клиент.Наименование)+" (Сумма=" + глФРМ(Doc.Итог("Сумма"), Doc.Валюта, 1)+")";
    КонецЦикла;
    
КонецПроцедуры // ЗаполнитьТаблицу()

//--------------------------------------------------------------------------------------------------
Процедура Подключить()

    ФС.УстТекКаталог(КаталогПрограммы());
    ИмяЭкзешника=ФС.НайтиПервыйФайл("1cv7*.exe");
    ПоследнийСимвол = Сред(ИмяЭкзешника,5,1);
    ПоследнийСимвол = ?(ПоследнийСимвол=".","",ПоследнийСимвол);

    // Инициализируем ИБ-приемник
    Состояние("Открытие базы данных - источника............");
    Ole = CreateObject("V77"+ПоследнийСимвол+".Application");
    //Если ИБ.Initialize(ИБ.RMTrade, "/d"+КаталогИБприемника, "No_splash_show") = 0 тогда
    Если Ole.Initialize(Ole.RMTrade,"/d"+ФормКаталогИБИсточника+" /N","No_splash_show") = 0 тогда
        Предупреждение("Ошибка открытия информационной базы!",30);
        Возврат;
    КонецЕсли;
    
    ЗаполнитьТаблицу();
КонецПроцедуры // Подключить()

//--------------------------------------------------------------------------------------------------
// ГрупповаяПометка(Режим)
//
// Параметры:
//  Режим:
//   1 - пометить все
//   2 - снять пометку
//   3 - инвертировать пометку
//
// Возвращаемое значение:
//  Нет
//
// Вызывается из формул элементов диалога
// кнопки групповой пометки
//
// Описание:
//  Производит групповые действия с пометкой строк таблицы формы
//
Процедура ГрупповаяПометка(Режим)
    
    Для А=1 По ТаблицаДокументов.КоличествоСтрок() Цикл
        
        Если Режим=1 Тогда
            
            ТаблицаДокументов.УстановитьЗначение(А,"Пометка",3);
            
        ИначеЕсли Режим=2 Тогда
            
            ТаблицаДокументов.УстановитьЗначение(А,"Пометка",1);
            
        Иначе
            
            ТекПометка = ТаблицаДокументов.ПолучитьЗначение(А,"Пометка");
            ТаблицаДокументов.УстановитьЗначение(А,"Пометка",?(ТекПометка=1,3,1));
            
        КонецЕсли;
        
    КонецЦикла;

КонецПроцедуры // ГрупповаяПометка()        

//--------------------------------------------------------------------------------------------------
Процедура ОбработкаТаблицы(Табл)
    
    ТекСтрока = Табл.ТекущаяСтрока();
    ТекКолонка= Табл.ТекущаяКолонка();
    Если ТекСтрока = 0 Тогда
        Возврат;
    КонецЕсли;
    
    Если ТекКолонка = "" Тогда
    КонецЕсли;
    
    ТекПометка = ТаблицаДокументов.ПолучитьЗначение(ТекСтрока,"Пометка");
    ТаблицаДокументов.УстановитьЗначение(ТекСтрока,"Пометка",?(ТекПометка=1,3,1));
        
КонецПроцедуры // ОбработкаТаблицы()

//--------------------------------------------------------------------------------------------------
Функция ПроверитьДокумент(Док)

    Если Док.ПометкаУдаления() = 1 Тогда
        Попытка
            Док.СнятьПометкуУдаления();
        Исключение
            Сообщить("Невозможно снять пометку удаления у документа "+Док.ТекущийДокумент()+" потому, что "+ОписаниеОшибки(),"!");
            Возврат 0;
        КонецПопытки;
    КонецЕсли;
    
    Если Док.Проведен() = 1 Тогда
        Попытка
            Док.СделатьНеПроведенным();
        Исключение
            Сообщить("Невозможно сделать непроведенным документ "+Док.ТекущийДокумент()+" потому, что "+ОписаниеОшибки(),"!");
            Возврат 0;
        КонецПопытки;
    КонецЕсли;

    Возврат 1;
КонецФункции // ПроверитьДокумент()

//--------------------------------------------------------------------------------------------------
// ПолучитьВремяДокументаЧислом(Док)
//
// Параметры:
//  Док - документ, чьё время надо получить
//
// Возвращаемое значение:
//  Нет
//
// Описание:
//  Преобразует время документа в число.
//
Функция ПолучитьВремяДокументаЧислом(Док)
    Время = Док.ПолучитьВремя();
    Ч = Лев(Время,2);
    М = Сред(Время,4,2);
    С = Прав(Время,2);
    Возврат 3600*Ч+60*М+С;
КонецФункции // ПолучитьВремяДокументаЧислом()

//--------------------------------------------------------------------------------------------------
// УстановитьВремяДокументаЧислом(Док, Сек)
//
// Параметры:
//  Док - документ, чьё время надо установить
//  Сек - число, новое время документа в секундах (с начала дня)
//
// Возвращаемое значение:
//  Нет
//
// Описание:
//  Устанавливает новое время документа.
//
Процедура УстановитьВремяДокументаЧислом(Док, Сек)
    Перем Ч,М,С;
    Ч=Цел(Сек/3600);
    Сек=Сек-Ч*3600;
    М=Цел(Сек/60);
    С=Сек-М*60;
    Док.УстановитьВремя(Ч,М,С);
КонецПроцедуры // УстановитьВремяДокументаЧислом()

//--------------------------------------------------------------------------------------------------
Процедура ЗаписатьДокумент(Док,Провести,Открыть,ВремяЗаписи)
    Перем Ч,М,С;  
        
    Попытка
        Если ВремяЗаписи = "НачалоДня" Тогда
            Док.АвтоВремяНачалоДня();
        ИначеЕсли ВремяЗаписи = "КонецДня" Тогда
            Док.АвтоВремяКонецДня();
        ИначеЕсли ВремяЗаписи = "Отключить" Тогда
            Док.АвтоВремяОтключить();
        ИначеЕсли ВремяЗаписи = "Текущее" Тогда
            Док.АвтоВремяТекущее();
        ИначеЕсли ТипЗначенияСтр(ВремяЗаписи) = "OLE" Тогда
            Время = ПолучитьВремяДокументаЧислом(ВремяЗаписи);
            УстановитьВремяДокументаЧислом(Док,Время);    
        КонецЕсли;
        Док.Записать();
        Если ВыбКомментировать = 1 Тогда
            Сообщить("Записан документ "+Док.ТекущийДокумент());
        КонецЕсли;
        Пометка = 2;
    Исключение
        Сообщить("Невозможно записать документ "+Док.ТекущийДокумент()+" потому, что "+ОписаниеОшибки(),"!");
        Возврат;
    КонецПопытки;
    
    Если Провести = 1 Тогда
        Попытка
            Док.Провести();
            Если Док.Проведен() = 1 Тогда
                Если ВыбКомментировать = 1 Тогда
                    Сообщить("Проведен документ "+Док.ТекущийДокумент());
                КонецЕсли;
                Пометка = 3;
            КонецЕсли;
        Исключение
            Сообщить("Невозможно провести документ "+Док.ТекущийДокумент()+" потому, что "+ОписаниеОшибки(),"!");
            Возврат;
        КонецПопытки;
    КонецЕсли;
    
    Если Открыть = 1 Тогда
        ОткрытьФорму(Док.ТекущийДокумент(),,-1);
    КонецЕсли;
    
КонецПроцедуры // ЗаписатьДокумент()

//--------------------------------------------------------------------------------------------------
Процедура ЗаписатьСправочник(Спр)
    
    Попытка
        Спр.Записать();
        Если ВыбКомментировать = 1 Тогда
            Если Спр.ЭтоГруппа() = 1 Тогда
                Сообщить("Записана группа справочника """+Спр.Вид()+""" "+Спр.ТекущийЭлемент());
            Иначе
                Сообщить("Записан элемент справочника """+Спр.Вид()+""" "+Спр.ТекущийЭлемент());
            КонецЕсли;
        КонецЕсли;
    Исключение
        Если Спр.ЭтоГруппа() = 1 Тогда
            Сообщить("Невозможно записать группу справочника """+Спр.Вид()+""" "+Спр.ТекущийЭлемент()+" потому, что "+ОписаниеОшибки(),"!");
        Иначе
            Сообщить("Невозможно записать элемент справочника """+Спр.Вид()+""" "+Спр.ТекущийЭлемент()+" потому, что "+ОписаниеОшибки(),"!");
        КонецЕсли;
        Возврат;
    КонецПопытки;
    
КонецПроцедуры // ЗаписатьСправочник()

//--------------------------------------------------------------------------------------------------
Функция ПолучитьЭлемент(ЧтоИскать, ГдеИскать, КакИскать, НовыйЭлемент, ВыбOle="")
    
    ЧтоИскатьКод            = ?(ТипЗначенияСтр(ЧтоИскать)="Справочник",ЧтоИскать.Код,            ЧтоИскать);
    ЧтоИскатьНаименование    = ?(ТипЗначенияСтр(ЧтоИскать)="Справочник",ЧтоИскать.Наименование,    ЧтоИскать);
    
    Spr = ?(ВыбOle="Ole",Ole.CreateObject("Справочник."+ГдеИскать),СоздатьОбъект("Справочник."+ГдеИскать));
    Если КакИскать = "Код" Тогда
        НашлиЭлемент = Spr.НайтиПоКоду(ЧтоИскатьКод);
    Иначе
        НашлиЭлемент = Spr.НайтиПоНаименованию(ЧтоИскатьНаименование, 0);
    КонецЕсли;
    
    Если НашлиЭлемент = 0 Тогда
        Сообщить("В справочнике """+ГдеИскать+""" элемент "+?(КакИскать="Код","с кодом "," с наименованием ")+""""+ЧтоИскать+""" не найден!","!");
        Если НовыйЭлемент = 1 Тогда
            Spr.Новый();
            Spr.Код            = ЧтоИскатьКод;
            Spr.Наименование= ЧтоИскатьНаименование;
            Spr.Записать();
            Сообщить("Записан новый элемент """+Spr.ТекущийЭлемент());
        КонецЕсли;
    КонецЕсли;
    
    Возврат Spr.ТекущийЭлемент();
КонецФункции // ПолучитьЭлемент()

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

    // очистим таблицу документа перед заполнением
    Док.УдалитьСтроки();

    Если ЦеновыеГруппы = 1 Тогда

        ТаблЗнач = СоздатьОбъект("ТаблицаЗначений");
        ТаблЗнач.НоваяКолонка("Цена");
        ТаблЗнач.НоваяКолонка("ЦенаБезСкидки");
        ТаблЗнач.НоваяКолонка("Количество");
        ТаблЗнач.НоваяКолонка("Сумма");
        Doc.ВыбратьСтроки();
        Пока Doc.ПолучитьСтроку() > 0 Цикл
            ТаблЗнач.НоваяСтрока();
            ТаблЗнач.Цена            = Doc.Цена;
            ТаблЗнач.ЦенаБезСкидки    = Doc.ЦенаБезСкидки;
            ТаблЗнач.Количество        = Doc.Количество;
            ТаблЗнач.Сумма            = Doc.Сумма;
        КонецЦикла;
        ТаблЗнач.Свернуть("Цена,ЦенаБезСкидки","Количество, Сумма");

        ТаблЗнач.ВыбратьСтроки();
        Пока ТаблЗнач.ПолучитьСтроку() > 0 Цикл
            НаимНоменклатуры = ПолучитьЭлемент(ТаблЗнач.ЦенаБезСкидки,    "ЦеновыеГруппы",    "Код",        0, "Ole");
            Док.НоваяСтрока();
            Док.Товар            = ПолучитьЭлемент(НаимНоменклатуры.Наименование, "Номенклатура",        "Наименование", 0);

            // найдем единицу измерения в подчиненном справочнике
            Спр = СоздатьОбъект("Справочник.Единицы");
            Спр.ИспользоватьВладельца(Док.Товар);
            Если Спр.НайтиПоРеквизиту("ТипЕдиницы",Док.Товар.БазоваяЕдиница,0) = 0 Тогда
                Сообщить("Не найдена единица измерения у товара """+Док.Товар+""" установите её вручную.","!");
            КонецЕсли;
            Док.Единица            = Спр.ТекущийЭлемент();
            
            Док.Количество        = ТаблЗнач.Количество;
            Док.Цена            = ТаблЗнач.Цена;
            Док.ЦенаБезСкидки    = ТаблЗнач.ЦенаБезСкидки;
            Док.Коэффициент        = 1;
            Док.Сумма            = ТаблЗнач.Сумма;//Док.Количество * Док.Цена;
            //Док.СтавкаНДС = ;
            //Док.НДС = ;
            //Док.Набор = ;
            //Док.СтавкаНП = ;
            //Док.СуммаНП = ;
        КонецЦикла;
        
    Иначе
        
        Doc.ВыбратьСтроки();
        Пока Doc.ПолучитьСтроку() > 0 Цикл
            Док.НоваяСтрока();
            Док.Товар            = ПолучитьЭлемент(Doc.Товар.Наименование,    "Номенклатура",    "Наименование",                0);

            // найдем единицу измерения в подчиненном справочнике
            Спр = СоздатьОбъект("Справочник.Единицы");
            Спр.ИспользоватьВладельца(Док.Товар);
            Если Спр.НайтиПоРеквизиту("ТипЕдиницы",Док.Товар.БазоваяЕдиница,0) = 0 Тогда
                Сообщить("Не найдена единица измерения у товара """+Док.Товар+""" установите её вручную.","!");
            КонецЕсли;
            Док.Единица            = Спр.ТекущийЭлемент();
            
            Док.Количество        = Doc.Количество;
            Док.Цена            = Doc.Цена;
            Док.Коэффициент        = Doc.Коэффициент;
            Док.Сумма            = Doc.Сумма;
            Док.СтавкаНДС        = Перечисление.ЗначенияНДС.ЗначениеПоИдентификатору(Doc.СтавкаНДС.Идентификатор());
            Док.НДС                = Doc.НДС;
            Док.Набор            = "";
            Док.СтавкаНП        = ПолучитьЭлемент(Doc.СтавкаНП.Код, "СтавкиНП",        "Код", 0);
            Док.СуммаНП            = Doc.СуммаНП;
            Док.ЦенаБезСкидки    = Doc.ЦенаБезСкидки;
        КонецЦикла;
        
    КонецЕсли;
    
    ЗаписатьДокумент(Док,0,ОткрыватьДокументы,Doc);
    
КонецПроцедуры // СоздатьДокументРасходнаяНакладная()

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

    Если ЦеновыеГруппы = 1 Тогда

        ТаблЗнач = СоздатьОбъект("ТаблицаЗначений");
        ТаблЗнач.НоваяКолонка("Цена");
        ТаблЗнач.НоваяКолонка("Количество");
        ТаблЗнач.НоваяКолонка("Сумма");
        Doc.ВыбратьСтроки();
        Пока Doc.ПолучитьСтроку() > 0 Цикл
            ТаблЗнач.НоваяСтрока();
            ТаблЗнач.Цена            = Doc.Цена;
            ТаблЗнач.Количество        = Doc.Количество;
            ТаблЗнач.Сумма            = Doc.Сумма;
        КонецЦикла;
        ТаблЗнач.Свернуть("Цена","Количество, Сумма");

        ТаблЗнач.ВыбратьСтроки();
        Пока ТаблЗнач.ПолучитьСтроку() > 0 Цикл
            НаимНоменклатуры = ПолучитьЭлемент(ТаблЗнач.Цена,    "ЦеновыеГруппы",    "Код",        0, "Ole");
            Док.НоваяСтрока();
            Док.Товар            = ПолучитьЭлемент(НаимНоменклатуры.Наименование, "Номенклатура",        "Наименование", 0);

            // найдем единицу измерения в подчиненном справочнике
            Спр = СоздатьОбъект("Справочник.Единицы");
            Спр.ИспользоватьВладельца(Док.Товар);
            Если Спр.НайтиПоРеквизиту("ТипЕдиницы",Док.Товар.БазоваяЕдиница,0) = 0 Тогда
                Сообщить("Не найдена единица измерения у товара """+Док.Товар+""" установите её вручную.","!");
            КонецЕсли;
            Док.Единица            = Спр.ТекущийЭлемент();
            
            Док.Коэффициент        = 1;
            Док.Количество        = ТаблЗнач.Количество;
            Док.Цена            = ТаблЗнач.Цена;
            Док.Сумма            = ТаблЗнач.Сумма;//Док.Количество * Док.Цена;
            Док.Всего            = глПоказательПриходногоДокумента(Док, "СуммаСНалогами");
            //Док.СтавкаНДС = ;
            //Док.НДС = ;
            //Док.СтавкаНП = ;
            //Док.СуммаНП = ;
        КонецЦикла;
        
    Иначе
        
        Doc.ВыбратьСтроки();
        Пока Doc.ПолучитьСтроку() > 0 Цикл
            Док.НоваяСтрока();
            Док.Товар            = ПолучитьЭлемент(Doc.Товар.Наименование,    "Номенклатура",    "Наименование",                0);

            // найдем единицу измерения в подчиненном справочнике
            Спр = СоздатьОбъект("Справочник.Единицы");
            Спр.ИспользоватьВладельца(Док.Товар);
            Если Спр.НайтиПоРеквизиту("ТипЕдиницы",Док.Товар.БазоваяЕдиница,0) = 0 Тогда
                Сообщить("Не найдена единица измерения у товара """+Док.Товар+""" установите её вручную.","!");
            КонецЕсли;
            Док.Единица            = Спр.ТекущийЭлемент();
            
            Док.Коэффициент        = Doc.Коэффициент;
            Док.Количество        = Doc.Количество;
            Док.Цена            = Doc.Цена;
            Док.Сумма            = Doc.Сумма;
            Док.СтавкаНДС        = Перечисление.ЗначенияНДС.ЗначениеПоИдентификатору(Doc.СтавкаНДС.Идентификатор());
            Док.НДС                = Doc.НДС;
            Док.СтавкаНП        = ПолучитьЭлемент(Doc.СтавкаНП.Код, "СтавкиНП",        "Код", 0);
            Док.СуммаНП            = Doc.СуммаНП;
            Док.Всего            = Doc.Всего;
        КонецЦикла;
    КонецЕсли;
    
    ЗаписатьДокумент(Док,0,ОткрыватьДокументы,Doc);
    
КонецПроцедуры // СоздатьДокументПриходнаяНакладная()

//--------------------------------------------------------------------------------------------------
Процедура Синхронизировать()
    
    Если ВыбКомментировать = 1 Тогда
        Сообщить("Начало загрузки:    "+Формат(ТекущаяДата(),"Д ДДММММГГГГ")+" в "+ТекущееВремя());
    КонецЕсли;

    Doc = Ole.CreateObject("Документ");
    
    ТаблицаДокументов.ВыбратьСтроки();
    Пока ТаблицаДокументов.ПолучитьСтроку() = 1 Цикл
        Если ТаблицаДокументов.Пометка <> 3 Тогда
            Продолжить;
        КонецЕсли;
        Если Doc.НайтиПоНомеру(ТаблицаДокументов.ДокНомер,ТаблицаДокументов.ДокДата,ТаблицаДокументов.ДокВид) = 0 Тогда
            Продолжить;
        КонецЕсли;
        
        Если Doc.Вид() = "РасходнаяНакладная" Тогда
            СоздатьДокументРасходнаяНакладная(Doc);
        ИначеЕсли Doc.Вид() = "ПриходнаяНакладная" Тогда
            СоздатьДокументПриходнаяНакладная(Doc);
        Иначе
        КонецЕсли;
    КонецЦикла;
    
    Если ВыбКомментировать = 1 Тогда
        Сообщить("Конец загрузки:    "+Формат(ТекущаяДата(),"Д ДДММММГГГГ")+" в "+ТекущееВремя());
    КонецЕсли;
    
КонецПроцедуры // Синхронизировать()

//--------------------------------------------------------------------------------------------------
НачДата = РабочаяДата();
КонДата = РабочаяДата();

ТаблицаДокументов.НоваяКолонка("Пометка",,,,"",1);
ТаблицаДокументов.НоваяКолонка("ДокВид",        
1 Chum
 
01.10.14
12:56
(0) Думаешь, что кто-то станет разбирать твои сотни строк?
2 Wobland
 
01.10.14
12:57
- Джек! Что ты можешь сделать за деньги?
- За деньги... я могу сделать... всё! ©
3 salvator
 
01.10.14
12:57
(1) +100, тем более по 7.7
4 Рэйв
 
01.10.14
13:00
УстановитьВремя(<?>,,);
Синтаксис:
УстановитьВремя(<Часы>,<Минуты>,<Секунды>)
Назначение:
Установить время документа.
Параметры:
<Часы> - число часов;
<Минуты> - число минут;
<Секунды> - число секунд.
Замечание:
Метод  можно использовать только для объектов, созданных функцией СоздатьОбъект.
5 Рэйв
 
01.10.14
13:00
скоро СП по 7.7 будет дороже чем по 8.х.

Раритет однако.
6 Галахад
 
гуру
01.10.14
13:01
(4) Не нуно. Там в тексте все есть.
7 Злопчинский
 
01.10.14
13:03
1. лениво.
2. неинтересно.
3. но если денег много...
8 Рэйв
 
01.10.14
13:04
(6)Кто б его еще читал:-)
9 Victor80
 
01.10.14
13:05
цена?
10 Злопчинский
 
01.10.14
13:11
так что не работает-то?
11 Victor80
 
01.10.14
13:12
сейчас при переносе он от балды ставит любое время, нужно чтобы приходные переносились с временем 8 утра а расходные 12 утра
12 Godofsin
 
01.10.14
13:12
(9) Вот это конструктивный разговор!
13 Godofsin
 
01.10.14
13:13
1000р.
14 Victor80
 
01.10.14
13:16
давайте за 500 )
вот примерный код  
Если Док.Вид() = "РасходнаяНакладная" Тогда
...
ИначеЕсли Док.Вид() = "ПриходнаяНакладная" Тогда
...
КонецЕсли;

Перем Ч,М,С;
      
        ДокументДата  = Док.ДатаДок;
        Док.ПолучитьВремя(Ч,М,С);
        ДокументВремя = Формат(Ч,"Ч (0)2")+":"+Формат(М,"Ч (0)2")+":"+Формат(С,"Ч (0)2");
15 Godofsin
 
01.10.14
13:23
(14) хм... ну давай за 500
16 Wobland
 
01.10.14
13:23
я угадаю эту мелодию с 900 драхм
17 Wobland
 
01.10.14
13:24
(15) и тут пришёл поручик и всё испортил
18 Godofsin
 
01.10.14
13:24
(17) )))))
19 Victor80
 
01.10.14
13:28
куда писать? и скидывать файл
20 Godofsin
 
01.10.14
13:30
(19) Godofsin@pochta.ru
21 Злопчинский
 
01.10.14
18:12
(14) с таким подходом ты слона не продашь.

ДокументВремя= Док.ПолучитьВремя(Ч,М,С);
.
ну и заодно пригодится
http://infostart.ru/public/13835/