Имя: Пароль:
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) Понаберут по объявлению...
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн