8.х ОБМЕН Выгрузить отчет из 1С в MySQL

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем ymva, 5 авг 2011.

  1. TopicStarter Overlay
    ymva
    Offline

    ymva

    Регистрация:
    5 авг 2011
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте! Имеется самописный отчет в 1с УТ. Организовал подключение к MySQL из 1с через ODBC драйвер. Подскажите, пожалуйста, как выгрузить этот отчет в MySQL? М.б. имеет смысл выгрузить в xml файл и из него в MySQL? Я так понимаю с помощью запросов я не смогу выбрать данные из отчета?
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    из отчета и не нужно данные выбирать
    каков смысл выгружать именно отчет в "мускул"?
  3. TopicStarter Overlay
    ymva
    Offline

    ymva

    Регистрация:
    5 авг 2011
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    В данном отчете ставится отметка выполнения заказа.
    Нужно, чтобы через веб-интерфейс на другом компьютере сети можно было поставить эту отметку
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    дык это не проблема отчета, имхо. нужно "перемещать" именно этот флажок, зачем весь отчет?
  5. TopicStarter Overlay
    ymva
    Offline

    ymva

    Регистрация:
    5 авг 2011
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    А как тогда передать № заказа, комментарии?
  6. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    кхм....скажем так: отчет тут, видимо, совсем не при чем.
    что мешает при отметке о выполнении заказа писать в мускул в какую-нить таблицу все необходимые реквизиты выполненного заказа?
  7. Andy13
    Offline

    Andy13 Опытный в 1С

    Регистрация:
    1 мар 2010
    Сообщения:
    244
    Симпатии:
    2
    Баллы:
    29
    А зачем отчет?
    Стоит задача - связать системы и создать единое информационное пространство для прохождения бизнес-процессов организации без задержек на границах интерфейсов. Я это всё так понимаю...
    Планы обмена тебе в помощь. Хотя я предложил бы использовать регламентные задания. Всовываешь свой код, и синхронизируешь периодически, через заданные интервалы всё что надо непосредственно, без дополнительных отчетов, файлов и кривых ручек юзеров.
  8. TopicStarter Overlay
    ymva
    Offline

    ymva

    Регистрация:
    5 авг 2011
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    Спасибо за советы, выгрузил данные, но есть одна проблема. Не получается выгрузить в MySQL флажок выполнения. Тип поля поставил ENUM. Подскажите, как выгрузить.
  9. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    эээ...а тип bool(boolean) разве поставить нельзя?
  10. TopicStarter Overlay
    ymva
    Offline

    ymva

    Регистрация:
    5 авг 2011
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    Поставил. В 1С значения поля истина/ложь, а в мускуле 0/1. Поэтому туплю, как выгрузить?

    P.S. Сорри за такие вопросы, я только учусь :angry:
  11. TopicStarter Overlay
    ymva
    Offline

    ymva

    Регистрация:
    5 авг 2011
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    С выгрузкой разобрался, все получилось. Теперь пытаюсь загрузить в 1с из мускула отметку выполнения. Запросом выбираю из мускула номер заказа и отметку, а как обновить отметку в 1с?
  12. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.174
    Симпатии:
    13
    Баллы:
    29
    в 1с это это где галочка твоя ? реквизит чего (документа,справочника...)?
  13. TopicStarter Overlay
    ymva
    Offline

    ymva

    Регистрация:
    5 авг 2011
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    В заказе покупателя я добавляю услуги, потом по мере их выполнения открываю отчет план мастера дневной и ставлю там отметку выполнения, и в заказе меняется значение поля "Выполнено"
  14. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    дык найти нужный документ, получить объект, присвоить Истина реквизиту и записать ДокументОбъект.
  15. TopicStarter Overlay
    ymva
    Offline

    ymva

    Регистрация:
    5 авг 2011
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    А если в заказе добавлено несколько услуг, как отметить выполнение каждой по отдельности?

    Мб получить заказ покупателя и присваивать истину каждой строке на вкладке услуги?
  16. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    получить документ объект, сделать для табличной части ЗаполнитьЗначения(), записать документ - это если для всех строк сразу.
  17. TopicStarter Overlay
    ymva
    Offline

    ymva

    Регистрация:
    5 авг 2011
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    А если для каждой по отдельности?
  18. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    циклом или по индексу строки, или найти нужную строку по услуге
  19. TopicStarter Overlay
    ymva
    Offline

    ymva

    Регистрация:
    5 авг 2011
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    Код:
    RS = Новый COMОбъект("ADODB.Recordset"); 
    RS.CursorType=3;
    // Запрос к базе на языке SQL запросов.
    RS.ActiveConnection=Connection;
    RS.Open("select * from plan_mastera_den");
    //Перемещаем указатель на первую запись.
    RS.MoveFirst(); 
    Пока RS.EOF()=0 Цикл
    // Обрабатываем значения полей выборки.
    nomer = RS.Fields("nomer").Value;
    data = RS.Fields("data").Value;
    rabota = RS.Fields("rabota").Value;
    otmetka = RS.Fields("otmetka").Value;  	
    
    
    НайденныйЗаказПокупателя = Документы.ЗаказПокупателя.НайтиПоНомеру(Строка(nomer),ТекущаяДата());
    Если НайденныйЗаказПокупателя<>Неопределено Тогда 
    ОбъектЗаказПокупателя = НайденныйЗаказПокупателя.ПолучитьОбъект();
    ТЧ = ОбъектЗаказПокупателя.Услуги;
    НайденнаяСтрока = ТЧ.Найти(rabota);
    Если НайденнаяСтрока = Неопределено Тогда
    Сообщить("Товар не найден!");
    Иначе
    НайденнаяСтрока.ОтметкаВыполнения = otmetka;
    ОбъектЗаказПокупателя.Записать();
    КонецЕсли;  
    
    Иначе 
    Сообщить("Заказ №"+Строка(nomer)+ " от "+Строка(data) + " не найден");
    КонецЕсли;
    // Перемещаем указатель.
    RS.MoveNext();    
    КонецЦикла;    
    
    
    
    Пытаюсь найти строку по номенклатуре и присвоить полю ОтметкаВыполнения значение переменной otmetka с помощью этого кода, но он говорит Товар не найден.
    Подскажите, пожалуйста, где ошибка?
  20. TopicStarter Overlay
    ymva
    Offline

    ymva

    Регистрация:
    5 авг 2011
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    Разобрался. Сделал по номеру строки. Но будет интересно узнать, почему не ищет по номенклатуре?

Поделиться этой страницей