Имя: Пароль:
1C
1С v8
Получение результата обработки через ком ☑
0 Alina Smerteva
 
21.06.17
✎
06:25
Привет, нужно результат обработки получить в другой базе
Процедура ВыполнитьПодключениеЧерезCOM()
    
    // Формируем строку подключения
    СтрокаПодключения =
    "srvr='srv'; ref='db'; usr='admlog'; pwd='admpass';";
    ComConnector = ПолучитьCOMОбъектПоВерсииПлатформы();
    СообщениеПользователю = Новый СообщениеПользователю;
    
    Попытка
        ComConnection = COMConnector.Connect(СтрокаПодключения);
    Исключение
        СообщениеПользователю.Текст = "Ошибка подключения: " + ОписаниеОшибки();
        СообщениеПользователю.Сообщить();
        Возврат;
    КонецПопытки;
    
    // Получаем список справочников подключенной базы
    Для Каждого спр Из ComConnection.Метаданные.Обработки Цикл
        СообщениеПользователю.Текст = "- " + спр.Имя;
        СообщениеПользователю.Сообщить();
    КонецЦикла;
    Для Каждого Обр из ComConnection.Метаданные.Обработки Цикл
        СообщениеПользователю.Текст = "- " + обр.имя;
        СообщениеПользователю.Сообщить();
    КонецЦикла;
    
    
    
КонецПроцедуры

Есть некая обработка МояОбработка в База1
Как из База2 запускать МояОбработка ?
1 Alina Smerteva
 
21.06.17
✎
06:25
Туплю...
Либо получать результат в База2, либо открывать саму МояОбрабокта в База2, как лучше ?
2 Alina Smerteva
 
21.06.17
✎
06:26
Функция ПолучитьCOMОбъектПоВерсииПлатформы() Экспорт
    
    // Определяем имя COM-объекта по версии платформы
    ИмяComОбъекта = "";
    Инфо = Новый СистемнаяИнформация;
    Если СтрНайти(Инфо.ВерсияПриложения, "8.3") > 0 Тогда
        ИмяComОбъекта = "V83.COMConnector";
    ИначеЕсли СтрНайти(Инфо.ВерсияПриложения, "8.2") > 0 Тогда
        ИмяComОбъекта = "V82.COMConnector";
    Иначе
        ВызватьИсключение "Не удалось определить версию платформы";
    КонецЕсли;
    
    // Инициализируем COM-объект и соединение
    COMConnector = Новый COMОбъект(ИмяComОбъекта);
    
    Возврат COMConnector;
    
КонецФункции
3 craxx
 
21.06.17
✎
06:31
(0) что значит запускать твою обработку? ответь себе на этот вопрос и после этого можно уже что-то советовать
4 Alina Smerteva
 
21.06.17
✎
06:33
(3) Нужно чтобы МояОбработка из База1 запускалась программно из База2
5 craxx
 
21.06.17
✎
06:34
(4) Что значит запускалась программно обработка? открывалась форма, выполнялись какие-то процедуры? и если выполнялись то какие?
6 Alina Smerteva
 
21.06.17
✎
06:38
(5) Форма должна быть всегда открыта
http://s019.radikal.ru/i637/1706/94/8192ef22fc80.png
7 craxx
 
21.06.17
✎
06:42
(6) Ты сама как себе это представляешь? Чтоб форма открылась в одной базе, но обработка в другой? так не бывает
8 Alina Smerteva
 
21.06.17
✎
06:46
(7)А как вообще можно реализовать тогда, чтобы результат выполнения обработки передавался во 2ую базу из 1ой ?
9 Alina Smerteva
 
21.06.17
✎
06:47
Может результат запроса получать можно в База2 и выводить его ?
10 craxx
 
21.06.17
✎
06:55
да, функцию обработки можно запустить и получить результат через COM. а форму писать в базе2.
11 Alina Smerteva
 
21.06.17
✎
06:57
(10) А можно поподробнее или ссылку на примеры, пожалуйста ?
12 arishkaKlimova
 
21.06.17
✎
07:10
13 Alina Smerteva
 
21.06.17
✎
07:44
Всё равно не совсем понятно, как это всё получить, пните кто-нибудь )
14 cw014
 
21.06.17
✎
08:01
Используй вместо V83.ComConnector - V83.Application, там это можно
15 Alina Smerteva
 
21.06.17
✎
08:02
(14) Да всё равно не понятно, хотелось бы пример, найти не получается
16 h-sp
 
21.06.17
✎
08:10
(15) берите просто данные из той базы, массив возвращайте или таблицу значений. Лучше конечно через сериализацию и десериализацию передавать.

А обработки лучше запускать уже в этой базе, но использовать полученные данные из той базы.
17 sFAQer
 
21.06.17
✎
08:11
А ещё лучше на базе web-сервисов реализовать, как бесшовная интеграция в ДО например.
18 Alina Smerteva
 
21.06.17
✎
08:16
(16) Допустим Результат=Запрос.Выполнить();

ТЗ = Результат.Выгрузить();

Как теперь по ком его получить ?

И правильно ли я вообще реализую ?
19 craxx
 
21.06.17
✎
08:43
(17) веб-сервисы весьма тормозны бывают.
20 Alina Smerteva
 
21.06.17
✎
08:48
Есть может у кого обработка, которая примерно такое же делает ? Без примера не понятно (
21 Alina Smerteva
 
21.06.17
✎
08:51
Получается так:
Мне нужно подключиться по КОМ к базе1, получить результат запроса из базы1, передать его в базу2 и каким то образом на экран выводить ?
22 Alina Smerteva
 
21.06.17
✎
11:49
ничего не выходит
23 Alina Smerteva
 
21.06.17
✎
11:56
М.б. у кого то есть пример всё таки ?
24 skafandr
 
21.06.17
✎
14:18
1)Запускать обработку в базе 2,данные по com брать в базе 1, например запросом  
2)Должно быть четкое понимание работы через COM,те оттуда можно взять числа строки даты. Соответственно нужно понимать как идентифицировать сложные данные типа элемент справочника
25 skafandr
 
21.06.17
✎
14:20
как тут код воткнуть?
26 skafandr
 
21.06.17
✎
14:23

Ком = Новый COMObject("V83.COMConnector");
Соединение = Ком.Connect ("Srvr=" + Стр.Сервер + "; Ref=" + Стр.Реф + "; Usr =" + Стр.Имя + ";  Pwd =" + Стр.Пароль + ";");
Запрос2 = Соединение.NewObject("Запрос");
Запрос2.Текст = "ВЫБРАТЬ
                        |    ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Товар,
                        |    ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт КАК ССКД,
                        |    ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток КАК КСКД
                        |ИЗ
                        |    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , Счет = &Счет, , ) КАК ХозрасчетныйОстаткиИОбороты
                        |
                        |УПОРЯДОЧИТЬ ПО
                        |    Товар";
        Запрос2.УстановитьПараметр("Счет", Соединение.ПланыСчетов.Хозрасчетный.НайтиПоКоду("41.01"));
        Запрос2.УстановитьПараметр("НачалоПериода", ДатаНачала);
        Запрос2.УстановитьПараметр("КонецПериода", КонецДня(ДатаКонца));
        Выборка = Запрос2.Выполнить().Выбрать();
    
        Пока Выборка.Следующий() Цикл
            ТСтр = ТЗ.Найти(СокрЛП(Выборка.Товар.Код), "КодТовара");
        
            Если ТСтр = Неопределено Тогда
                ТСтр = ТЗ.Добавить();
                ТСтр.Товар = Выборка.Товар.Наименование;
                ТСТр.КодТовара = СокрЛП(Выборка.Товар.Код);
            КонецЕсли;
27 skafandr
 
21.06.17
✎
14:23
кусочек для направления мысли
28 skafandr
 
21.06.17
✎
14:28
тут Запрос2 выполняется в первой базе,результат в неком виде заполняет ТЗ во второй базе,причем как видите берутся данные строка и число
29 Alina Smerteva
 
26.06.17
✎
09:01
Как вызвать экспорнтую функцию из модуля формы обработки ?
ffff = ComConnection.Обработки.рс.создать();
ffff.ПослеСчитыванияКарты();

{Обработка.Обработка2.Форма.Форма.Форма(22)}: Метод объекта не обнаружен (ПослеСчитыванияКарты)
ffff.ПослеСчитыванияКарты();
30 Alina Smerteva
 
26.06.17
✎
09:19
Слишком тупой вопрос или почему молчите ?)
31 Мимохожий Однако
 
26.06.17
✎
09:21
(30) ОФФ: Тебя обидеть или промолчать?
32 Alina Smerteva
 
26.06.17
✎
09:22
(31) А где вариант "ответить на вопрос" ?
33 Мимохожий Однако
 
26.06.17
✎
09:27
(29) ПослеСчитыванияКарты() Экспорт
34 d4rkmesa
 
26.06.17
✎
09:28
ОбъектПодключения = ПодключитсяКИнформационнойБазе(СтруктураПодключения);
    
    Если ОбъектПодключения = Неопределено Тогда
        Возврат Неопределено;
    КонецЕсли;
    
    Попытка
        //запрос по остаткам в WMS непосредственно через COM-соединение
        ЗапросCOM = ОбъектПодключения.NewObject("Запрос");
        ЗапросCOM.Текст = ПолучитьТекстЗапросаПоОстаткам();
        
        Если ЗначениеЗаполнено(ДатаАктуальности) И (КонецДня(ДатаАктуальности) <> КонецДня(ТекущаяДата())) Тогда
            comДатаОстатков = ОбъектПодключения.ЗначениеИзСтрокиВнутр(ЗначениеВСтрокуВнутр(ДатаАктуальности));
        Иначе
            comДатаОстатков = ОбъектПодключения.ЗначениеИзСтрокиВнутр(ЗначениеВСтрокуВнутр(ТекущаяДата()));
        КонецЕсли;
        
        ЗапросCOM.УстановитьПараметр("Период", comДатаОстатков);
        РезультатПодключения = ЗначениеИзСтрокиВнутр(ОбъектПодключения.ЗначениеВСтрокуВнутр(ЗапросCOM.Выполнить().Выгрузить()));
35 Alina Smerteva
 
26.06.17
✎
09:33
(33) еопознанный оператор
ffff.ВывестиНаЭкранНажатие() <<?>>экспорт (Проверка: Тонкий клиент)
36 Остап Сулейманович
 
26.06.17
✎
09:35
(35) Когда это "экспорт" стал применяться к вызову? А не к определению?
37 Alina Smerteva
 
26.06.17
✎
09:36
(36) Дак это, в модуле формы и так Функция  ПослеСчитыванияКарты() Экспорт
38 Мимохожий Однако
 
26.06.17
✎
09:37
(37) Перемести эту функцию в модуль объекта из модуля формы
39 Остап Сулейманович
 
26.06.17
✎
09:37
(37) И все же. Когда Экспорт стал применяться к вызову?
ЗЫ. Может все же пригласить пусть не специалиста, но хотя бы любознательного студента?
40 Галахад
 
гуру
26.06.17
✎
10:00
(38) + 1. Форма-то не открыта.
41 Alina Smerteva
 
27.06.17
✎
09:00
Всё таки не могу понять, как решить задачу (
42 catena
 
27.06.17
✎
09:16
(41)Процедуру в модуль засунь уже.
43 d4rkmesa
 
27.06.17
✎
09:19
Как в (12) почему не получается? Что за задача, что нужна интерактивная обработка из другой базы? Может что-то пересмотреть?
44 Alina Smerteva
 
27.06.17
✎
09:23
(42) Карты считывает(точнее руками ввожу номер карты)
Но там ещё много чего надо сделать, не понимаю как, материал в инете не особо помогает (43) Мне нужно не просто форму открыть, мне нужно чтобы весь код обработки выполнялся
45 PiotrLoginov
 
27.06.17
✎
09:29
(44) слишком серьезная задача для Вашего уровня. Начните с чего-нибудь попроще
46 PiotrLoginov
 
27.06.17
✎
09:29
+ (44) можно начать с фотки в своем профиле
47 cw014
 
27.06.17
✎
09:31
(46) Судя по фамилии, я не думаю, что ты хочешь видеть нечто в балахоне и с косой
48 Alina Smerteva
 
27.06.17
✎
09:34
А нет чего то простого, типа "по кому подключиться и выполнять обработку там, а результат в табдок и в 1ой базе показывать" ?
49 catena
 
27.06.17
✎
09:35
(48)Есть. Засунь функцию в модуль.
50 Alina Smerteva
 
27.06.17
✎
09:37
(49) Но там всё не в 1 функции делается же
51 catena
 
27.06.17
✎
09:39
(50)Придется поработать, да.
52 Alina Smerteva
 
27.06.17
✎
09:41
53 Ц_У
 
27.06.17
✎
09:41
В 20 лет, я бы посоветовал погулять пойти, с мальчиками познакомиться.
54 Alina Smerteva
 
27.06.17
✎
09:42
(51) Я и не против, просто не могу понять
55 Ц_У
 
27.06.17
✎
09:43
В модуле формы должны быть расположены только ИНТЕРФЕЙСНЫЕ функции, которые меняют ВИД этой формы, все колдунство по отношению к базе должно быть в модуле объекта/менеджера
56 catena
 
27.06.17
✎
09:44
(54)Что ты не можешь понять? Оставь интерфейс на клиентской стороне, получение данных делай по ком. Фсе.
57 Alina Smerteva
 
27.06.17
✎
09:48
Функция  ПослеСчитыванияКарты() Экспорт
    
    Если  Месяц(ДатаВывода)=Месяц(ТекущаяДата())  и Год(ДатаВывода)= Год(ТекущаяДата()) Тогда
        Если День(ТекущаяДата())>= 10 Тогда
            ДатаВывода= ДобавитьМесяц(ДатаВывода,-1);
            ЭлементыФормы.ПериодВыдачи.Значение = Формат(ДатаВывода, "ДФ=ММММ") +     " " + Формат(ДатаВывода, "ДФ=гггг") + " г";
        Иначе
            ДатаВывода= ДобавитьМесяц(ДатаВывода,-2);
            ЭлементыФормы.ПериодВыдачи.Значение = Формат(ДатаВывода, "ДФ=ММММ") +     " " + Формат(ДатаВывода, "ДФ=гггг") + " г";
        КонецЕсли;
        
    Иначе
        ЭлементыФормы.ПериодВыдачи.Значение = Формат(ДатаВывода, "ДФ=ММММ") +     " " + Формат(ДатаВывода, "ДФ=гггг") + " г";
    КонецЕсли;
    
    ЭлементыФормы.МинусДата.Видимость = Истина;
    ЭлементыФормы.МинусДата.Доступность=Истина;
    ЭлементыФормы.ПлюсДата.Видимость=Истина;
    ЭлементыФормы.ПлюсДата.Доступность=Истина;
    ЭлементыФормы.ПериодВыдачи.Видимость=Истина;
    ЭлементыФормы.ПериодВыдачи.Доступность= Ложь;
    ЭлементыФормы.Надпись.Видимость=Ложь;
    ЭлементыФормы.ВывестиНаЭкран.Видимость=Истина;
    ЭлементыФормы.ВывестиНаЭкран.Доступность=Истина;
    ЭлементыФормы.КолвоОставшихсяПечатей.Видимость=Истина;
    ЭлементыФормы.КолвоПечатей.Видимость=Истина;
    ЭлементыФормы.КолвоОставшихсяПечатей.Доступность=Истина;
    ЭлементыФормы.Инструкция.Видимость=Ложь;
    з = новый Запрос;
    
    з.Текст = "ВЫБРАТЬ
    |    Сфинкс.ФИО
    |ИЗ
    |    РегистрСведений.Сфинкс КАК Сфинкс
    |ГДЕ
    |    Сфинкс.Карта = &Карта";
    з.УстановитьПараметр("Карта",Строка(СокрЛП(Формат(Число(ЭлементыФормы.Карта.Значение),"ЧГ=0"))));
    
    
    ВыборкаСотр = з.Выполнить().Выгрузить();
    Если ВыборкаСотр.Количество() = 0 или ВыборкаСотр.Получить(0).фио.ВидДоговора = Перечисления.ВидыДоговоровСФизЛицами.Подряда Тогда
        ПриОткрытии();
        
        Возврат "";
    КонецЕсли;
    
    
    Сотр =   ВыборкаСотр.Получить(0).фио;
    Физлицо = Сотр.Физлицо;
     ЭлементыФормы.Карта.Значение = Строка(Физлицо);
     ЭлементыФормы.Карта.Доступность=Ложь;

    УстановкаСчетчик();
    
    Если ЭлементыФормы.КолвоОставшихсяПечатей.Значение = "" Тогда
        ЭлементыФормы.КолвоОставшихсяПечатей.Значение = "0";
        ЭлементыФормы.ВывестиНаПечать.Видимость= Ложь;
        ЭлементыФормы.ВывестиНаПечать.Доступность=Ложь;
    Иначе
        ЭлементыФормы.ВывестиНаПечать.Видимость= Истина;
        ЭлементыФормы.ВывестиНаПечать.Доступность=Истина;
    КонецЕсли;
    ЭлементыФормы.Выход.Видимость=Истина;
    ЭлементыФормы.Выход.Доступность=Истина;
    
КонецФункции
58 Alina Smerteva
 
27.06.17
✎
09:49
табдок=новый ТабличныйДокумент;
    
    // Формируем строку подключения
    СтрокаПодключения =
    "srvr='lic1c'; ref='zup_test3'; usr='admmin'; pwd='123456789';";
    ComConnector = ПолучитьCOMОбъектПоВерсииПлатформы();
    СообщениеПользователю = Новый СообщениеПользователю;
    
    Попытка
        ComConnection = COMConnector.Connect(СтрокаПодключения);
    Исключение
        СообщениеПользователю.Текст = "Ошибка подключения: " + ОписаниеОшибки();
        СообщениеПользователю.Сообщить();
        Возврат табдок;
    КонецПопытки;
    
    Запрос= ComConnection.NewObject("Запрос");
    
    запрос.Текст = "ВЫБРАТЬ
    |    Сфинкс.ФИО
    |ИЗ
    |    РегистрСведений.Сфинкс КАК Сфинкс
    |ГДЕ
    |    Сфинкс.Карта = &Карта";
    запрос.УстановитьПараметр("Карта",Формат(Карта,"ЧГ=0"));
    Результат=запрос.выполнить().выгрузить();
    если Результат.количество()>0 тогда
        сообщить(Результат.получить(0).фио.description);
    иначе
        Сообщить("Не найдена карта");
    КонецЕсли;
    
    РСОбъект=ComConnection.обработки.рс.создать();    
    Ответ=РСОбъект.ПолучитьИнфуИзМодуляОбработки(Карта);
    
    если ответ<>Неопределено тогда
        
        табдок.Прочитать(Ответ);
        
    КонецЕсли;
    Возврат табдок;
    
КонецФункции
59 Alina Smerteva
 
27.06.17
✎
09:49
Функция ВыполнитьПодключениеЧерезCOM()
    табдок=новый ТабличныйДокумент;
    
    // Формируем строку подключения
    СтрокаПодключения =
    "srvr='lic1c'; ref='zup_test3'; usr='admmin'; pwd='123456789';";
    ComConnector = ПолучитьCOMОбъектПоВерсииПлатформы();
    СообщениеПользователю = Новый СообщениеПользователю;
    
    Попытка
        ComConnection = COMConnector.Connect(СтрокаПодключения);
    Исключение
        СообщениеПользователю.Текст = "Ошибка подключения: " + ОписаниеОшибки();
        СообщениеПользователю.Сообщить();
        Возврат табдок;
    КонецПопытки;
    
    Запрос= ComConnection.NewObject("Запрос");
    
    запрос.Текст = "ВЫБРАТЬ
    |    Сфинкс.ФИО
    |ИЗ
    |    РегистрСведений.Сфинкс КАК Сфинкс
    |ГДЕ
    |    Сфинкс.Карта = &Карта";
    запрос.УстановитьПараметр("Карта",Формат(Карта,"ЧГ=0"));
    Результат=запрос.выполнить().выгрузить();
    если Результат.количество()>0 тогда
        сообщить(Результат.получить(0).фио.description);
    иначе
        Сообщить("Не найдена карта");
    КонецЕсли;
    
    РСОбъект=ComConnection.обработки.рс.создать();    
    Ответ=РСОбъект.ПолучитьИнфуИзМодуляОбработки(Карта);
    
    если ответ<>Неопределено тогда
        
        табдок.Прочитать(Ответ);
        
    КонецЕсли;
    Возврат табдок;
    
КонецФункции
60 Alina Smerteva
 
27.06.17
✎
09:50
А в базе с обработкой в модуле объекта

Функция ПолучитьИнфуИзМодуляОбработки (Карта) экспорт
    //ФОрма=ПолучитьФорму("ФормаОтчета");
    //Ответ=форма.ПолучитьВсеДанныеИзФормы("Какая то форма");
    //Возврат "Связь есть"
                                        
    ТабДок=ВывестиНаЭкранНажатие (Карта);
    //табдок=новый ТабличныйДокумент;
    ТабДок.Записать(КаталогВременныхФайлов()+"темп.MXL",ТипФайлаТабличногоДокумента.MXL);
    
    Возврат КаталогВременныхФайлов()+"темп.MXL";
КонецФункции
61 Alina Smerteva
 
27.06.17
✎
09:51
И функцию из модуля формы в модуль объекта Функция ВывестиНаЭкранНажатие(карта)
62 Alina Smerteva
 
27.06.17
✎
09:52
нормально ?
63 Ц_У
 
27.06.17
✎
09:56
(57) плохо, интерфейс и работа с базой
64 Ц_У
 
27.06.17
✎
09:56
(59) два возврата - плохо
65 Alina Smerteva
 
27.06.17
✎
09:56
(63) Ну она такая уже есть
66 Ц_У
 
27.06.17
✎
09:57
(60) если файл занят кем-то/чем-то?
ПолучитьИмяВременногоФайла("mxl")
67 Alina Smerteva
 
27.06.17
✎
09:59
(66) про него знать то не знает никто
68 Ц_У
 
27.06.17
✎
10:10
(67) это не значит, что нужно писать код "на отъ...сь"
69 Alina Smerteva
 
27.06.17
✎
10:12
(68) я не знаю как по-другому сделать
70 Ц_У
 
27.06.17
✎
10:16
(69) все процедуры, которые вызывать будешь через ком, перенеси в молуль объекта обработки, сделай их экспортными, если это необходимо, для твоей задачи подойдет даже обработка без формы.
Или, второй вариант, делаешь обработку с формой в базе2 из нее подключаешься к базе1 и вытягиваешь данные запросами
71 Alina Smerteva
 
27.06.17
✎
10:30
(70) Данные то и так все запросами получают, тысячами строк )
72 Провинциальный 1сник
 
27.06.17
✎
10:35
(55) Только вот с управляемыми формами обращение к модулю объекта из модуля формы возможно только через костыль РеквизитФормыВЗначение("Объект").МояПроцедураОбщегоМодуля. Проблема в том, что это очень "тяжелый" вызов, и если он производится часто - то имеем дикие тормоза.
73 Alina Smerteva
 
27.06.17
✎
10:40
74 Alina Smerteva
 
27.06.17
✎
10:44
(70) Можешь пожалуйста какой-нибудь пример показать "вытягиваешь данные запросами" ?
У меня как бы и так в обработке все данные запросами вытягиваются
75 Alina Smerteva
 
27.06.17
✎
10:47
Запрос= ComConnection.NewObject("Запрос");
    
    запрос.Текст = "ВЫБРАТЬ
    |    Сфинкс.ФИО
    |ИЗ
    |    РегистрСведений.Сфинкс КАК Сфинкс
    |ГДЕ
    |    Сфинкс.Карта = &Карта";
    запрос.УстановитьПараметр("Карта",Формат(Карта,"ЧГ=0"));
    Результат=запрос.выполнить().выгрузить();


Типа того ?
76 Ц_У
 
27.06.17
✎
10:50
(75) да
    КомЗапрос = COMConnector.newObject("Запрос");
    КомЗапрос.УстановитьПараметр("Организация",КомОрганизация);
    КомЗапрос.УстановитьПараметр("Период",ТекущаяДата());

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

    РезультатКом = КомЗапрос.Выполнить().Выгрузить();
77 Alina Smerteva
 
27.06.17
✎
10:53
(76) А нет какой-нибудь штуки типа обращаться просто к запросу в обработке ?)
78 Ц_У
 
27.06.17
✎
10:57
(77) к процедуре можно
79 Мимохожий Однако
 
27.06.17
✎
10:58
(77) Надо хорошо помолиться.
80 Alina Smerteva
 
27.06.17
✎
10:58
У меня такой вопрос
Сейчас у меня:
https://ibb.co/d2YRSk
https://ibb.co/hvtFL5

Как сделать Все кнопки с (73) ?
81 Alina Smerteva
 
27.06.17
✎
11:04
Если обращаться к ComConnector можно только из функции ВыполнитьПодключениеЧерезCOM()
то как мне обратиться к ComConnector в процедуре ПлюсДатаНажатие?
82 Ц_У
 
27.06.17
✎
11:09
(81) возьми листок и ручку, нарисуй два квадрата - это базы
подумай, что и откуда ты хочешь получить, нарисуй как это выглядит для пользователя, от этого и пляши
83 Alina Smerteva
 
27.06.17
✎
11:10
(82) Ну я хочу форму 1 в 1 как в обработке в базе
Мне вообще надо идентично чтобы всё было
84 Мимохожий Однако
 
27.06.17
✎
11:11
(82) Ну, не умеет она рисовать.
85 Alina Smerteva
 
27.06.17
✎
11:12
Единственное - выполнять из другой базы
86 Ц_У
 
27.06.17
✎
11:13
(83) давай от простого к сложному пойдем:
1. сделай обработку, которая выдает то, что тебе нужно в базе2
2. перенеси все процедуры работы с данными (запросы и прочее) в модуль объекта обработки
3. обвяжешь потом это все КОМ-ом и будет работать как ты хочешь
87 Alina Smerteva
 
27.06.17
✎
11:18
(86)  1 и 2 готово
88 Ц_У
 
27.06.17
✎
11:30
(87) ну теперь вызывай ее из базы 1
КомОбработка = COMConnector.Обработки.МояОбработка.Создать();
ДанныеКом = КомОбработка.МояПроцедураИлиФункция()
89 Alina Smerteva
 
27.06.17
✎
11:39
(88) К меня так и выводится
РСОбъект=ComConnection.обработки.рс.создать();    
    Ответ=РСОбъект.ПолучитьИнфуИзМодуляОбработки(Карта);
    
    если ответ<>Неопределено тогда
        
        табдок.Прочитать(Ответ);
        
    КонецЕсли;
    Возврат табдок;
90 Ц_У
 
27.06.17
✎
12:08
(89) и, все работает?
91 Alina Smerteva
 
27.06.17
✎
12:15
(90) Я же говорю, выводит всю нужную инфу давно уже, не понимаю как кнопки приделать( точнее всю форму сделать такую же как и в той обработке)
92 catena
 
27.06.17
✎
12:23
(91)Возьми "ту" обработку со всеми ее кнопками и блэкджеками. Весь вызов данных перепиши. Фсе.
93 Ц_У
 
27.06.17
✎
12:23
(91) ну повесь обработчики на кнопки и передергивай данные, передавай параметры в процедуры и возвращай с их учетом
94 Ц_У
 
27.06.17
✎
12:24
(92) фсё или Ой, фсё? :)
95 catena
 
27.06.17
✎
12:24
(94)В данном контексте уже ближе к "ой, фсё")))
96 Alina Smerteva
 
27.06.17
✎
12:27
У меня сейчас управляемая форма, а там обычная форма
можете пример показать, как переписать себе
{Обработка.Обработка1.Форма.Форма.Форма(139,30)}: Переменная не определена (Физлицо)
    рс.Отбор.Физлицо.Установить(<<?>>Физлицо); (Проверка: Сервер)

рс = РегистрыСведений.ПечатьРасчетногоЛиста.СоздатьНаборЗаписей();
    рс.Отбор.Физлицо.Установить(Физлицо);


ЭлементыФормы.КолвоОставшихсяПечатей.Значение = Рс[0].Счетчик;


<<?>>ЭлементыФормы.КолвоОставшихсяПечатей.Значение = Рс[0].Счетчик; (Проверка: Сервер)
{Обработка.Обработка1.Форма.Форма.Форма(2463,3)}: Переменная не определена (ЭлементыФормы
97 Ц_У
 
27.06.17
✎
12:29
физлицо - в реквизит обработки и на форму выведи
элементыформы теперь просто элементы
98 ejikbeznojek
 
27.06.17
✎
12:30
(96) Хехе, а я даже знаю кто такой ТС)))
Тут даже есть куски моего кода)))
99 catena
 
27.06.17
✎
12:32
(98)хочешь помочь девушке или просто хвастаешься?
100 Alina Smerteva
 
27.06.17
✎
12:32
(97) Как я создам Реквизит в пустой базе СправочникСсылка.ФизическиеЛица ?
101 ejikbeznojek
 
27.06.17
✎
12:34
(99) Хвастаюсь разумеется))
102 Serginio1
 
27.06.17
✎
12:35
103 Ц_У
 
27.06.17
✎
12:38
(100) получи список ФЛ из первой базы и в список выбора засунь
104 catena
 
27.06.17
✎
12:38
(101)Вот этим?

   Если ВыборкаСотр.Количество() = 0 или ВыборкаСотр.Получить(0).фио.ВидДоговора = Перечисления.ВидыДоговоровСФизЛицами.Подряда Тогда
        ПриОткрытии();
105 Alina Smerteva
 
27.06.17
✎
12:39
(104) это не его )
106 catena
 
27.06.17
✎
12:39
(105)Твое?))
107 Alina Smerteva
 
27.06.17
✎
12:39
(106) и не моё ) не знаю чьё
108 Ц_У
 
27.06.17
✎
12:40
(106) одного бездельника уволили взяли другого?
109 ejikbeznojek
 
27.06.17
✎
13:01
(108) Понаберут по объявлению...