Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > Торговля и склад. Выгрузка остатков и контрагентов


Автор: hztp_serg 7.9.2007, 13:40
Используется типовая конфигурация 1С 7.7 "Торговля и склад для Украины". Стоит задача автоматизировать процес передачи остатков на складах удалённому экспедитору, и получения от него количества собраных заявок по контрагентам.
База находится в райцентре, экспедитор в обласном, у него имеется комп и доступ в инет, при необходимости можно поставить 1С. Я в 1С новичок, только начинаю осваивать. Имею достаточный опыт работы в VFP и MS SQL. Я предполагаю делать на базе выгрузку в ексел или дбф, передавать их по електронке экспедитору, он собирает заявки, заполняет (в екселе или дбф) по контрагентам количество заявок и по электронке передаёт это на базу. Если такой вариант правельный. Может кто поделится примером создания выгрузки остатков и контрагентов в дбф или эксел. И как на основе (дбф-ки или эксел) полученой от экспедитора с количеством заявок, програмным способом создать накладные? Я стараюсь самостоятельно одолеть это всё дело, но чтобы освоить синтаксис нужно время. А тут уже просят чтобы процес пошол, хоть каким-то способом.
Бльшое спасибо!

Автор: Naghual 7.9.2007, 14:18
Есть в 1С такая вещь как Управление Распределенными Базами Данных.
Вот через нее будет вернее организовать.

Автор: hztp_serg 7.9.2007, 15:00
У нас компоненты "Управление Распределенными Базами Данных" нет, приобрести конечно можно, но это может будет в ближайшем будущем. На первых порах хотелось чтобы работало хоть с помощью обработки. Если есть у кого-то, поделитесь примерчиком создания обработки выгрузки в дбф контрагентов и остатков на складах.

Автор: hztp_serg 7.9.2007, 15:58
Если можно, подскажите ссылочку на документацию по компоненте "Управление Распределенными Базами Данных".

Автор: larabelle 7.9.2007, 16:48
Здравствуйте, ни в коей мере не хочу обидеть реноме вашей компании, но мне кажется, что УРИБ - это не ваш случай, в смысле, это случай на перспективу, на будущее.

Конкретно по вашему вопросу, готова помочь, только если вы разобьете ваш вопhос на части. У вас в одном вопросе - 4-или 5 составляющих.

larabelle

Автор: SaschaL 7.9.2007, 18:47
Конкретнее что именно нужно, пример обработки по формировнанию остатков по складу и выгрузке в формат dbf или Exel?
Или сам принцып как это делается?

Автор: Zero 7.9.2007, 23:34
Цитата(hztp_serg @  7.9.2007,  13:40 Найти цитируемый пост)
сли такой вариант правельный. Может кто поделится примером создания выгрузки остатков и контрагентов в дбф или эксел.

Создаёшь отчёт из объекта "Таблица", в этот отчёт выгружаешь всю необходимую информацию, обрабатываешь и сохраняешь как Excel (*.xls) файл.
Цитата(hztp_serg @  7.9.2007,  13:40 Найти цитируемый пост)
Может кто поделится примером создания выгрузки остатков

Для получения остатков надо прописать такой кодик:
Код

Перем ТовОстаток, ТовОстатокПоФирме;   
Перем ОстаткиТМЦ, Резервы;
.......
ОстаткиТМЦ = Регистр.ОстаткиТМЦ;
.......
глПолучитьОстаткиНоменклатуры(Фирма, Н.ТекущийЭлемент(), Н.ОсновнаяЕдиница, ОстаткиТМЦ, ТовОстаток, ТовОстатокПоФирме, Склад, Резервы, 1);
........
 функция описана в глобальном модуле, параметры данной функции посмотри там же. А непосредственно остаток по складу и фирме на ходятся в переменных ТовОстаток и ТовОстатокПоФирме соответственной.
Н - объект типа "Справочник.Номенклатура"
В цикле с помощью данной функции выгружай остатки в отчёт.
Цитата(hztp_serg @  7.9.2007,  13:40 Найти цитируемый пост)
И как на основе (дбф-ки или эксел) полученой от экспедитора с количеством заявок, програмным способом создать накладные?

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

//Соединение с файлом
    Попытка
        Эксель = СоздатьОбъект("Excel.Application"); 
    Исключение
        Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!"); 
        Возврат;
    КонецПопытки;
        
    //Инициализация Экселя
    Книга = Эксель.WorkBooks.Open(<Путь к файлу Excel, включая его имя и расширение>); 
    Лист = Книга.WorkSheets(1);
.......

// Получение данных можешь проводить в цикле, что-то вроде такого
Для НомерСтроки=Началострок по конецстрок Цикл

  // обращение к ячейкам столбцов
  ОчереднаяЯчейкаСтолбца1 = Лист.Cells(НомерСтроки,1).Value;
  ОчереднаяЯчейкаСтолбца2 = Лист.Cells(НомерСтроки,2).Value;
  .....

КонецЦикла

Ну а собственно создать накладные программно, это есть ни что иное, как создание документа. Т.е. открывай методы докуента и читай, какой для чего нужен.
Например методы: Новый() создаёт новый документ. Осталось только программно заполнить шапку и табличную часть и т.д. и т.п.

Автор: larabelle 8.9.2007, 03:22
Хм, после Zero мне тут вроде как даже и добавить нечего  smile 

Автор: hztp_serg 10.9.2007, 08:11
Большое всем спасибо!. Постараюсь реализовать предложения уважаемого "Zero".

Автор: AkelaSQL 14.9.2007, 11:38
Забей на дурные советы. Если хочешь гарантированно иметь данные в обоих узлах используй УРБД. В конфигураторе можно быстренько настроить, что отражать в удаленной базе. Обмен файлами можно легко автоматизировать через ftp или mail. Мылься ко мне, вышлю хорошую инсталяшку 1С, в которой есть всё, в т.ч. и УРБД. Могу подкинуть готовых батников для автоматизации автообмена по ftp.

А это тебе для развития: http://www.mista.ru/articles1c/urbd.htm

Автор: larabelle 14.9.2007, 16:29
Цитата(AkelaSQL @ 14.9.2007,  09:38)
 

Цитата

Забей на дурные советы. Если хочешь гарантированно иметь данные в обоих узлах используй УРБД. 
 

Елки -палки, ну прямо глаза народу открыли. А мы-то тут сидим и про УРБД ни сном ни духом.

Читайте поставленный вопрос :
Цитата

Я предполагаю делать на базе выгрузку в ексел или дбф, передавать их по електронке экспедитору

В рамках данного вопроса ответы Zero профессиональные. 

Можно было предложить вашу инсталляшку и без дурных понтов. Разумеется если автор вопроса готов работать с пираткой.

larabelle 

Автор: larabelle 15.9.2007, 02:42
Цитата

Мылься ко мне, вышлю хорошую инсталяшку 1С, 

А инсталляшка  ваша весит 1,8 кило. Разумеется после этого моего поста вы - точнее ты ее утяжеловесишь (если не дурак).
В общем, уважаемый hztp_serg - вы если его exe-шник скачать захотите, то перед тем как запустить - думайте-
1С+урбд весом менее двух мегабайт - это означает что товарищ вас поиметь хочет. 

Автор: SaschaL 15.9.2007, 16:19
Ребята а откуда тема по УРБД нарисовалась, Ведь в содержании вопроса она не фигурировала, да и вообде предлагать паленое на форуме это немного нехорошо! smile
И насколько я помню идет в разрез правилам форума!
Понимаю что законы на взгляд некоторых несовершенны, но давайте соблюдать правила форума...
 smile 

Автор: larabelle 16.9.2007, 09:33
Цитата(SaschaL @ 15.9.2007,  14:19)
Ребята а откуда тема по УРБД нарисовалась, Ведь в содержании вопроса она не фигурировала, да и вообде предлагать паленое на форуме это немного нехорошо! smile
И насколько я помню идет в разрез правилам форума!
Понимаю что законы на взгляд некоторых несовершенны, но давайте соблюдать правила форума...
 smile

Да все проще гораздо. УРБД - это лишь повод, чтобы слить некий exe-шник. 
Название этого екзешника замаскировано под 1С. Весит он 1,8 мег. НУ а чего там внутри - честно говоря нет ни малейшего желания выяснять, потому как разводилово это.

Автор: SaschaL 16.9.2007, 11:53
А-А-А, ну тогда понятно! 
1,8 метра это круто, чем надо сжать чем же надо так сжать прилоджение что оно так уменьшилось в размерах!  smile 

Автор: larabelle 16.9.2007, 12:46
Цитата(SaschaL @ 16.9.2007,  09:53)
А-А-А, ну тогда понятно! 
1,8 метра это круто, чем надо сжать чем же надо так сжать прилоджение что оно так уменьшилось в размерах!  smile

Вообще,  мы должны отметить, как все таки растет уровеь спаммером -
ведь раньще - ну ... типа рассылки -
потом - прибамбасы всякие -
а теперь - 
вы только послушайте
Цитата

Если хочешь гарантированно иметь данные в обоих узлах используй УРБД. В конфигураторе можно быстренько настроить, что отражать в удаленной базе. Обмен файлами можно легко автоматизировать через ftp или mail. Мылься ко мне, вышлю хорошую инсталяшку 1С, в которой есть всё, в т.ч. и УРБД. Могу подкинуть готовых батников для автоматизации автообмена по ftp.


..елки палки - в общем нынешним спаммерам - тяжело - им и про 1С знать надо и про урбд - 
и еще уметь наехать надо на квалифицированные отсветы.

- не хочу быть спамером - хочу быть 1с-ником 
PS а че эт  Zero молчит - может он  это все придумал;)

Автор: SaschaL 16.9.2007, 15:38
Ну почему сразу спамер, может просто про простоте душевной парень не в ту ветку форума попал.
Тут вроде про настроку и программирование в среде 1С, ERP-ек и SAP-пок обсуждают. И участники форума своим умом решают проблемы ну ли просяс совета у колег.
В общем мы не ищем легких путей! smile

Автор: Zero 16.9.2007, 19:58
Цитата(SaschaL @  16.9.2007,  15:38 Найти цитируемый пост)
про простоте душевной парень не в ту ветку форума попал

В рамках данной темы, можно использовать УРБД.
Но если автар только начинает разбираться с 1С, то для начала проще будет эксельками делать (ИМХО)
А вообще вот неплохая инструкция по установке и настройке: http://kb.mista.ru/article.php?id=3

А в качестве установке компоненты, есть один хитрый способ... smile 
Создаёте в каталоге платформы (C:\Program Files\1Cv77\BIN\) файл: DistrDB.dll. Потом обновляете платформу 25 или 27 релизом, и пустой файл (вышесозданный) станет заполненым необходимыми данными. И качать ничего ненужно. smile 

Автор: larabelle 17.9.2007, 18:54
Цитата

А в качестве установке компоненты, есть один хитрый способ.


аккуратней, мистер, с такими тонкостями лучше в личку - а то 1С вас бить начнет - я ведь могу и не подоспеть на помощь  smile 
larabelle 

Автор: AkelaSQL 19.9.2007, 12:49
1: Если Вы чего-то не видели, это не значит что этого не существует!
2: Моя инсталяшка весит не 1.8Мб, а 5.6Мб. С чего Вы взяли такие размеры, я не знаю.
3: Волков бояться - в лес не ходить. Проверяйте вложения антивирусами!
4: Мой опыт программирования - 10 лет, из них 7 - 1С, от 7.5 до 8.1, поэтому не стоит!

ps: Рад был знакомству!

Пишу я обычно так (пример для 7.7):

Поиск товара по основным реквизитам, в т.ч. части этих реквизитов, время выполнения менее секунды:
/*******************************************
Процедура Поиск() 
    
    Форма.Текущий.Доступность(1);
    Форма.Аналоги.Доступность(1);
    Форма.СОстатками.Доступность(1);
    
    СЗ = СоздатьОбъект("СписокЗначений");
    СЗ.УдалитьВсе();
    ТЗРезультат.Очистить();
    
    ТекстЗапроса = "
    |select 
    |Max('FONT[None] BRUSH[8421631] COUNT[12] INDENT[0]') as Цвет,
    |N.id as ЭлементНоменклатуры,
    |N.code as Код,
    |N.$Справочник.Номенклатура.КодОмега as КодОмега,
    |N.$Справочник.Номенклатура.Артикул as КодСкуба,
    |N.descr as Наименование,
    |N.$Справочник.Номенклатура.Комментарий as Комментарий,
    |P.NP as Производитель,
    |($ПоследнееЗначение.Номенклатура.Популярность(N.id,'" + АмДата(ТекущаяДата()) + "')) as Популярность
    |";
    Если Детально = 1 Тогда
        ТекстЗапроса = ТекстЗапроса + "
        |,
        |G.NP as Группа,
        |PG.NP as Подгруп, 
        |TI.NP as ТехИнфо 
        |";
    КонецЕсли;
    ТекстЗапроса = ТекстЗапроса + "
    |from $Справочник.Номенклатура as N
    |left outer join
    |(select ZSP.descr as NP, SNP.parentext as VP
    |from $Справочник.СвойстваНоменклатуры as SNP
    |inner join $Справочник.ЗначенияСвойств as ZSP
    |on ZSP.id = SNP.$Справочник.СвойстваНоменклатуры.ЗначениеСвойства
    |where Rtrim(Ltrim(SNP.$Справочник.СвойстваНоменклатуры.ВидСвойства)) = :Производитель) as P
    |on P.VP = N.id  
    |";
    
    ЕстьУсловия = 0;
    Если ПустоеЗначение(Карточка) = 0 Тогда
        ТекстЗапроса = ТекстЗапроса + "    
        |inner join 
        |(select ZSP.descr as NP, SNP.parentext as VP
        |from $Справочник.СвойстваНоменклатуры as SNP
        |inner join $Справочник.ЗначенияСвойств as ZSP
        |";
        Если флВнутри1 = 1 Тогда
            ТекстЗапроса = ТекстЗапроса + "
            |on (ZSP.id = SNP.$Справочник.СвойстваНоменклатуры.ЗначениеСвойства) and (lower(Rtrim(Ltrim(ZSP.descr))) Like '%" + Нрег(СокрЛП(Карточка)) + "%')
            |";
        Иначе
            ТекстЗапроса = ТекстЗапроса + "
            |on (ZSP.id = SNP.$Справочник.СвойстваНоменклатуры.ЗначениеСвойства) and (lower(Rtrim(Ltrim(ZSP.descr))) Like '" + Нрег(СокрЛП(Карточка)) + "%')
            |";
        КонецЕсли;
        ТекстЗапроса = ТекстЗапроса + "
        |where Rtrim(Ltrim(SNP.$Справочник.СвойстваНоменклатуры.ВидСвойства)) = :Карточка) as K
        |on K.VP = N.id
        |";
        ЕстьУсловия = 1;
    КонецЕсли; 
    Если ПустоеЗначение(Группа) = 0 Тогда
        ТекстЗапроса = ТекстЗапроса + "    
        |inner join 
        |(select ZSP.descr as NP, SNP.parentext as VP
        |from $Справочник.СвойстваНоменклатуры as SNP
        |inner join $Справочник.ЗначенияСвойств as ZSP
        |on (ZSP.id = SNP.$Справочник.СвойстваНоменклатуры.ЗначениеСвойства) and (lower(Rtrim(Ltrim(ZSP.descr))) Like '%" + Нрег(СокрЛП(Группа)) + "%')
        |where Rtrim(Ltrim(SNP.$Справочник.СвойстваНоменклатуры.ВидСвойства)) = :Группа) as G
        |on G.VP = N.id
        |";
        ЕстьУсловия = 1; 
    Иначе
        Если Детально = 1 Тогда
            ТекстЗапроса = ТекстЗапроса + "    
            |left outer join 
            |(select ZSP.descr as NP, SNP.parentext as VP
            |from $Справочник.СвойстваНоменклатуры as SNP
            |inner join $Справочник.ЗначенияСвойств as ZSP  
            |on (ZSP.id = SNP.$Справочник.СвойстваНоменклатуры.ЗначениеСвойства)
            |where Rtrim(Ltrim(SNP.$Справочник.СвойстваНоменклатуры.ВидСвойства)) = :Группа) as G
            |on G.VP = N.id
            |"; 
        КонецЕсли;
    КонецЕсли;  
    Если ПустоеЗначение(Подгруппа) = 0 Тогда
        ТекстЗапроса = ТекстЗапроса + "    
        |inner join 
        |(select ZSP.descr as NP, SNP.parentext as VP
        |from $Справочник.СвойстваНоменклатуры as SNP
        |inner join $Справочник.ЗначенияСвойств as ZSP
        |on (ZSP.id = SNP.$Справочник.СвойстваНоменклатуры.ЗначениеСвойства) and (lower(Rtrim(Ltrim(ZSP.descr))) Like '%" + Нрег(СокрЛП(Подгруппа)) + "%')
        |where Rtrim(Ltrim(SNP.$Справочник.СвойстваНоменклатуры.ВидСвойства)) = :Подгруппа) as PG
        |on PG.VP = N.id 
        |";
        ЕстьУсловия = 1; 
    Иначе 
        Если Детально = 1 Тогда
            ТекстЗапроса = ТекстЗапроса + "    
            |left outer join 
            |(select ZSP.descr as NP, SNP.parentext as VP
            |from $Справочник.СвойстваНоменклатуры as SNP
            |inner join $Справочник.ЗначенияСвойств as ZSP 
            |on (ZSP.id = SNP.$Справочник.СвойстваНоменклатуры.ЗначениеСвойства)
            |where Rtrim(Ltrim(SNP.$Справочник.СвойстваНоменклатуры.ВидСвойства)) = :Подгруппа) as PG
            |on PG.VP = N.id 
            |";
        КонецЕсли;
    КонецЕсли;
    Если ПустоеЗначение(ТехИнфо) = 0 Тогда
        ТекстЗапроса = ТекстЗапроса + "    
        |inner join 
        |(select ZSP.descr as NP, SNP.parentext as VP
        |from $Справочник.СвойстваНоменклатуры as SNP
        |inner join $Справочник.ЗначенияСвойств as ZSP
        |on (ZSP.id = SNP.$Справочник.СвойстваНоменклатуры.ЗначениеСвойства) and (lower(Rtrim(Ltrim(ZSP.descr))) Like '%" + Нрег(СокрЛП(ТехИнфо)) + "%')
        |where Rtrim(Ltrim(SNP.$Справочник.СвойстваНоменклатуры.ВидСвойства)) = :ТехИнфо) as TI
        |on TI.VP = N.id
        |";
        ЕстьУсловия = 1;
    Иначе 
        Если Детально = 1 Тогда
            ТекстЗапроса = ТекстЗапроса + "    
            |left outer join 
            |(select ZSP.descr as NP, SNP.parentext as VP
            |from $Справочник.СвойстваНоменклатуры as SNP
            |inner join $Справочник.ЗначенияСвойств as ZSP 
            |on (ZSP.id = SNP.$Справочник.СвойстваНоменклатуры.ЗначениеСвойства)
            |where Rtrim(Ltrim(SNP.$Справочник.СвойстваНоменклатуры.ВидСвойства)) = :ТехИнфо) as TI
            |on TI.VP = N.id
            |";
        КонецЕсли;
    КонецЕсли;
    
    Если ПустоеЗначение(ОригНомер) = 0 Тогда
        Если Константа.РаботатьПоHTTP = 1 Тогда
            
            ИнтернетОбъект    = СоздатьОбъект("AddIn.V7HttpReader");
            ИнтернетОбъект.КоличествоПопытокАвторизации = 0;
            Если Константа.ИспользоватьПрокси = 1 Тогда
                ИнтернетОбъект.УстановитьПараметрыПрокси(СокрЛП(Константа.ИмяПрокси), СокрЛП(Константа.ПарольПрокси));
            КонецЕсли;
            СтрокаЗапроса = "?search=" + СокрЛП(ОригНомер);
            Если флВнутри = 1 Тогда
                СтрокаЗапроса = СтрокаЗапроса + "&chk1=1";
            КонецЕсли;
            СтрокаЗапроса = СтрокаЗапроса + "&user=" + СокрЛП(глПользователь.ОсновнаяФирма.ПользовательWeb) + "&key=" + СокрЛП(глПользователь.ОсновнаяФирма.ПарольWeb);
            ИнтернетОбъект.Получить(СокрЛП(Константа.АдресURLКросс) + СтрокаЗапроса, ОтветСервера, 2);
            ОтветСервера = СокрЛП(ОтветСервера);
            
            Если Прав(ОтветСервера, 1) = "," Тогда
                ОтветСервера = Лев(ОтветСервера, СтрДлина(ОтветСервера) - 1);
            КонецЕсли; 
            ОтветСервера = Кавычка + СтрЗаменить(ОтветСервера, ",", Кавычка + "," + Кавычка) + Кавычка;
            
            СписНом = СоздатьОбъект("СписокЗначений");
            СписНом.ИзСтрокиСРазделителями(ОтветСервера);
            
            ТекстЗапросаДоп = "
            |delete dbo.#MyTemp
            |";
            
            //БазаОмега.Отладка(1);
            Если БазаОмега.Выполнить(ТекстЗапросаДоп) = 0 Тогда
                Сообщить("Ошибка очистки временной таблицы на сервере.
                |Поиск по ориг. номеру недоступен!");
                Возврат;
            КонецЕсли;
            
            Для Сч = 1 По СписНом.РазмерСписка() Цикл
                ТекстЗапросаДоп = "
                |insert into dbo.#MyTemp values('" + СокрЛП(СписНом.ПолучитьЗначение(Сч)) + "', '')
                |";
                
                //БазаОмега.Отладка(1);
                Если БазаОмега.Выполнить(ТекстЗапросаДоп) = 0 Тогда
                    Сообщить("Ошибка заполнения временной таблицы на сервере.
                    |Поиск по ориг. номеру недоступен!");
                    Возврат;
                КонецЕсли;
            КонецЦикла;
        Иначе
            
            ТекстЗапросаДоп = "
            |delete dbo.#MyTemp
            |";
            
            //БазаОмега.Отладка(1);
            Если БазаОмега.Выполнить(ТекстЗапросаДоп) = 0 Тогда
                Сообщить("Ошибка очистки временной таблицы на сервере.
                |Поиск по ориг. номеру недоступен!");
                Возврат;
            КонецЕсли; 
            
            ТекстЗапросаДоп = " 
            |insert into dbo.#MyTemp
            |(MyCol)
            |select
            |K.$ДокументСтроки.Кросс.КодОмега
            |from $ДокументСтроки.Кросс as K
            |";
            Если флВнутри = 1 Тогда
                ТекстЗапросаДоп = ТекстЗапросаДоп + "
                |where lower(Rtrim(Ltrim(K.$ДокументСтроки.Кросс.ОрНом))) Like '%" + Нрег(СокрЛП(ОригНомер)) + "%'
                |";
            Иначе
                ТекстЗапросаДоп = ТекстЗапросаДоп + "
                |where lower(Rtrim(Ltrim(K.$ДокументСтроки.Кросс.ОрНом))) Like '" + Нрег(СокрЛП(ОригНомер)) + "%'
                |";
            КонецЕсли;
            
            //БазаОмега.Отладка(1);
            БазаОмега.Выполнить(ТекстЗапросаДоп);
        КонецЕсли; 
        
        ТекстЗапроса = ТекстЗапроса + "    
        |inner join  dbo.#MyTemp as T
        |on Rtrim(Ltrim(T.MyCol)) = Rtrim(Ltrim(N.$Справочник.Номенклатура.КодОмега))  
        |";
        
        ЕстьУсловия = 1;
    КонецЕсли;
    
    ТекстЗапроса = ТекстЗапроса + "    
    |where (1=1)
    |";  
    
    Если ПустоеЗначение(КодОмега) = 0 Тогда
        ТекстЗапроса = ТекстЗапроса + "    
        |and (lower(Rtrim(Ltrim(N.$Справочник.Номенклатура.КодОмега))) Like '%" + Нрег(СокрЛП(КодОмега)) + "%') 
        |";
        ЕстьУсловия = 1;
    КонецЕсли;
    Если ПустоеЗначение(КодСкубы) = 0 Тогда
        ТекстЗапроса = ТекстЗапроса + "    
        |and (lower(Rtrim(Ltrim(N.$Справочник.Номенклатура.Артикул))) Like '%" + Нрег(СокрЛП(КодСкубы)) + "%') 
        |";
        ЕстьУсловия = 1;
    КонецЕсли;
    Если ПустоеЗначение(Код1С) = 0 Тогда
        ТекстЗапроса = ТекстЗапроса + "    
        |and (lower(Rtrim(Ltrim(N.code))) Like '%" + Нрег(СокрЛП(Код1С)) + "%') 
        |";
        ЕстьУсловия = 1;
    КонецЕсли;
    Если ПустоеЗначение(Наименование) = 0 Тогда
        ТекстЗапроса = ТекстЗапроса + "    
        |and (lower(Rtrim(Ltrim(N.descr))) Like '%" + Нрег(СокрЛП(Наименование)) + "%') 
        |";
        ЕстьУсловия = 1;
    КонецЕсли;
    Если ПустоеЗначение(Комментарий) = 0 Тогда
        ТекстЗапроса = ТекстЗапроса + "    
        |and (lower(Rtrim(Ltrim(N.$Справочник.Номенклатура.Комментарий))) Like '%" + Нрег(СокрЛП(Комментарий)) + "%') 
        |";
        ЕстьУсловия = 1;
    КонецЕсли;
    
    Если ЕстьУсловия = 0 Тогда 
        Если Вопрос("Не заданы условия для поиска!!!
        |Вывести все позиции справочника?
        |Это займёт несколько минут!!!", 4, 15) = 6 Тогда
            Текущий = 1;
            Аналоги = 0;
            Детально = 0;
            СОстатками = 0;
            Форма.Текущий.Доступность(0);
            Форма.Аналоги.Доступность(0);
            Форма.СОстатками.Доступность(0);
        Иначе
            Возврат;
        КонецЕсли;
    КонецЕсли;  
    
    ТекстЗапроса = ТекстЗапроса + "group by N.id,N.code,N.$Справочник.Номенклатура.КодОмега,N.$Справочник.Номенклатура.Артикул,N.descr,N.$Справочник.Номенклатура.Комментарий,P.NP";
    
    Если Детально = 1 Тогда
        ТекстЗапроса = ТекстЗапроса + ",G.NP,PG.NP,TI.NP";
    КонецЕсли;
    
    БазаОмега.УстановитьТекстовыйПараметр("Производитель", СокрЛП(ВидСвПроизводитель));
    БазаОмега.УстановитьТекстовыйПараметр("Карточка", СокрЛП(ВидСвКарточка));
    БазаОмега.УстановитьТекстовыйПараметр("Группа", СокрЛП(ВидСвГруппа)); 
    БазаОмега.УстановитьТекстовыйПараметр("Подгруппа", СокрЛП(ВидСвПодгруппа));
    БазаОмега.УстановитьТекстовыйПараметр("ТехИнфо", СокрЛП(ВидСвТехИнфо));

    //БазаОмега.Отладка(1);
    БазаОмега.Открыть(ТекстЗапроса);
    БазаОмега.ПолучитьРезультатыВ_ТЗ(ТЗРезультат,1);
    БазаОмега.Закрыть();
    
    ТЗРезультат.УстановитьПараметрыКолонки("КодОмега",,,,,10);
    ТЗРезультат.УстановитьПараметрыКолонки("КодСкуба",,,,"КодСкубы",10);
    ТЗРезультат.УстановитьПараметрыКолонки("Производитель",,,,,20);
    ТЗРезультат.УстановитьПараметрыКолонки("Наименование",,,,"Номенклатура");
    ТЗРезультат.ВидимостьКолонки("Цвет, ЭлементНоменклатуры",0);
    
    Если Аналоги = 1 Тогда
        ПоискАналогов();
    КонецЕсли; 
    
    УбратьБезОстатков();
    
    Если (ТЗРезультат.КоличествоСтрок() > 0) И (СОстатками = 0) Тогда 
        ТЗРезультат.Сортировать("КодОмега+, КодСкуба+, Наименование+, Производитель+");
    КонецЕсли;  
    
    Если Детально = 1 Тогда
        ТЗРезультат.УстановитьПараметрыКолонки("Производитель",,,,,18);
        ТЗРезультат.УстановитьПараметрыКолонки("Группа",,,,,10);
        ТЗРезультат.УстановитьПараметрыКолонки("Подгруп",,,,,10);
        ТЗРезультат.УстановитьПараметрыКолонки("ТехИнфо",,,,,15);
    КонецЕсли;
    
    // Восстановление первой закладки.        
    Закладка = 1;                      
    
    // Открытие нужного слоя.
    Форма.Закладки.ТекущаяСтрока(Закладка);
    ТекущаяЗакладка = Форма.Закладки.ПолучитьЗначение(Закладка);
    Форма.ИспользоватьСлой(ТекущаяЗакладка+", Основной", 2);
    ЕстьИзменения2 = 1;
    ЕстьИзменения3 = 1;
    ЕстьИзменения4 = 1;
    ЕстьИзменения5 = 1;
    ЕстьИзменения6 = 1;
    ЕстьИзменения7 = 1;
    ЕстьИзменения8 = 1;
    ЕстьИзменения9 = 1;
    ЕстьИзменения10 = 1;
    ЕстьИзменения11 = 1;
    ЕстьИзменения12 = 1;
    ЕстьИзменения13 = 1;
    ЕстьИзменения14 = 1;
    РасшФормы.ПодсветкаЗакладки(2,0);
    РасшФормы.ПодсветкаЗакладки(3,0);
    РасшФормы.ПодсветкаЗакладки(4,0);
    РасшФормы.ПодсветкаЗакладки(5,0);
    РасшФормы.ПодсветкаЗакладки(6,0);
    РасшФормы.ПодсветкаЗакладки(7,0);
    РасшФормы.ПодсветкаЗакладки(8,0);
    РасшФормы.ПодсветкаЗакладки(9,0);
    РасшФормы.ПодсветкаЗакладки(10,0);
    РасшФормы.ПодсветкаЗакладки(11,0);
    РасшФормы.ПодсветкаЗакладки(12,0);
    РасшФормы.ПодсветкаЗакладки(13,0);
    РасшФормы.ПодсветкаЗакладки(14,0);
    СтарСтрока = 1;
    СтарОмега = "";
    СтарТекущий = Текущий;
    ЕстьПоиск = 1;
КонецПроцедуры 
//*******************************************

Автор: larabelle 20.9.2007, 11:56
Цитата

Если Вы чего-то не видели, это не значит что этого не существует!

ой-ей - какой слог. Вообще то я и не говорила, что не существует ваша инсталляшка.

Цитата

Моя инсталяшка весит не 1.8Мб, а 5.6Мб. С чего Вы взяли такие размеры, я не знаю.

как с чего? с вашего екзешника 1Csetup27.exe - так он у вас величается. 5,6 мег лучше чем 1.8 , но увы - имею только 1,8 -0 пробовала скачать дважды причем  downloader при закачке не высвечивает вес файла - это уже к вашей ссылке вопросы - чего-то я с любых доменов качаю легко - а тут проблемы сплошные.

Цитата

Волков бояться - в лес не ходить. Проверяйте вложения антивирусами!
 
easy, мистер, easy - у вас 10 лет опыт программирования - уж вам то не знать, что именно в exe-файл можно вшить червя так, что антивирусник его не возьмет -потом - при запуске - по идее антивирусник должен спохватиться (хотя опять же зависит от хитрости программиста), но не каждый успеет.

PS - я всего лишь предупредила автора вопроса об осторожности, но никто не запрещал ему пользоваться вашими ссылками. 

PPS по поводу выкладки по поиску товара - я не поняла к какому это вопросу относится.

Автор: AkelaSQL 20.9.2007, 14:03
Кому надо пишите:
akelahacker@mail.ru
ICQ: 271840861

а по поводу кода, это так, для знакомства.
О художнике можно судить по написаным им картинам, а о программисте по его коду.

Добавлено через 2 минуты и 53 секунды
А вирус, его и в ert вписать можно замечательно!
 smile

Автор: Zero 21.9.2007, 21:46
Цитата(AkelaSQL @  20.9.2007,  14:03 Найти цитируемый пост)
Кому надо пишите:
akelahacker@mail.ru

А адресок то скромный такой. smile

Добавлено через 7 минут и 45 секунд
Цитата(AkelaSQL @  20.9.2007,  14:03 Найти цитируемый пост)
О художнике можно судить по написаным им картинам, а о программисте по его коду.

А ты случайно языками неошибся? smile Оператор select в запросе версии 7.7 не может присутствовать.

Автор: AkelaSQL 24.9.2007, 14:04
Это пример использования компоненты 1С++
Так что всё возможно, если очень захотеть и не только select

Автор: Zero 24.9.2007, 22:30
Цитата(AkelaSQL @  24.9.2007,  14:04 Найти цитируемый пост)
Это пример использования компоненты 1С++
Так что всё возможно, если очень захотеть и не только select

В общем случае то нет ничего нивозожного, особенно с наличием OLE.
Но в данном случае речь идёт про стандартную 1с7.7

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)