Работа через COM 1C 8/2

  1. 10 г. назад

    попытка
    если не ЦентрБД.visible тогда
    ЦентрБД.visible = истина;
    КонецЕсли;
    Исключение
    ЦентрБД = Новый COMОбъект("V82.Application");
    если Константы.ФайловыйВариант.Получить() тогда
    соединено = ЦентрБД.Connect("File="""+ Константы.ПутьБД.Получить() + """;Usr=""" + Константы.Пользователь.Получить()+""";Pwd=""" + СокрЛП(Константы.Пароль.Получить()) + """;");
    иначе
    соединено = ЦентрБД.Connect("Srvr="""+Константы.Сервер.Получить()+""";Ref="""+Константы.ИмяБД.Получить()+""";Usr="""+Константы.Пользователь.Получить()+""";Pwd = """ + СокрЛП(Константы.Пароль.Получить()) + """;");
    КонецЕсли;
    если не соединено тогда
    сообщить("Соединение с центральной базой не установлено! Попробуйте заново открыть программу...");

    Возврат;
    КонецЕсли;

    КонецПопытки;

    ПечатьДокументов = ЦентрБД.ВнешниеОбработки.Создать(Константы.ОбработраПечати.Получить());

    ////программист начало 28.02.2011
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | ОтгрузкаНакладные.Накладная,
    | ОтгрузкаНакладные.Накладная.ОснованиеНомер,
    | ОтгрузкаНакладные.Накладная.ОснованиеДата,
    | ОтгрузкаНакладные.Накладная.СуммаДокумента,
    | ОтгрузкаНакладные.Накладная.Дата КАК ДатаДок,
    | ОтгрузкаНакладные.Накладная.Вес,
    | ОтгрузкаНакладные.Накладная.Контрагент.Код
    |ИЗ
    | Документ.Отгрузка.Накладные КАК ОтгрузкаНакладные
    |ГДЕ
    | ОтгрузкаНакладные.Ссылка.Ссылка = &Ссылка";
    //| И НЕ ОтгрузкаНакладные.Накладная.Организация В ИЕРАРХИИ (&Организации)";

    Запрос.УстановитьПараметр("Ссылка", ЭтотОбъект.Ссылка);
    //Организации=Новый("СписокЗначений");
    //Организации.Добавить(РЦ);
    //Организации.Добавить(ДК);
    //Запрос.УстановитьПараметр("Организации", Организации);

    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    //Пока Выборка.Следующий() Цикл
    // ЛогСообщений.ДобавитьСтроку(СокрЛП(Выборка.Накладная)+";"+СокрЛП(Выборка.НакладнаяОснованиеНомер)+";"
    // +СокрЛП(Выборка.НакладнаяОснованиеДата)+";"+СокрЛП(Выборка.ДатаДок)+";"+СокрЛП(Выборка.НакладнаяСуммаДокумента)+";"
    // +СокрЛП(Выборка.НакладнаяВес)+";"+СокрЛП(ИмяПользователя())+";"+СокрЛП(ТекущаяДата())); //ТекущийПользователь()
    //КонецЦикла;

    //ЛогСообщений.Записать(Файл.ПолноеИмя, КодировкаТекста.ANSI);
    Имеется=0;
    для каждого СтрНак из Накладные цикл
    если СтрНак.Накладная.Организация=рц или СтрНак.Накладная.Организация=дк тогда
    Продолжить;
    конецесли;
    Если СокрЛП(Сред(СтрНак.ПредставлениеНакладной,11,2))="А-" Тогда

    накл = ЦентрБД.Документы.РеализацияТоваровУслуг.НайтиПоНомеру(СтрНак.Накладная.ОснованиеНомер,СтрНак.Накладная.ОснованиеДата);
    // попытка
    //ЦентрБД.Документы.РеализацияТоваровУслуг.Выбрать(НачалоНедели(СтрНак.Накладная.ОснованиеДата), КонецНедели(СтрНак.Накладная.ОснованиеДата));
    // Пока ЦентрБД.Документы.РеализацияТоваровУслуг.Получить() = 1 Цикл
    // ТекДок = ЦентрБД.Документы.РеализацияТоваровУслуг.ТекущийДокумент();
    ВыборкаТекДок = ЦентрБД.Документы.РеализацияТоваровУслуг.Выбрать(НачалоНедели(СтрНак.Накладная.ОснованиеДата), КонецНедели(СтрНак.Накладная.ОснованиеДата));

    а=1;

    Для Каждого ТекДок ИЗ ВыборкаТекДок Цикл

    Если ((ТекДок.НомерДок =СтрНак.Накладная.ОснованиеНомер) и (ТекДок.Контрагент.Код = СтрНак.Накладная.Контрагент.Код)) Тогда
    Накл = ТекДок.Ссылка;
    прервать;
    КонецЕсли;

    КонецЦикла;
    //
    стр = ПечатьДокументов.Накладные.добавить();

    Найти документ по номеру сработал , а выбрать за период нет , в чем проблема

  2. что конкретно не сработало?

    закомменченная строка?

    //ЦентрБД.Документы.РеализацияТоваровУслуг.Выбрать(НачалоНедели(СтрНак.Накладная.ОснованиеДата), КонецНедели(СтрНак.Накладная.ОснованиеДата));

    и что пишет?

  3. Выборку не делает ,запросом решил вопрос

или зарегистрируйтесь чтобы ответить!