Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Войти | Зарегистрироваться )



2 страниц V   1 2 >

>  Добавление строки в yml файл
Murano
Отправлено: 27.09.17, 12:07


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 20.07.17
Пользователь №: 56981


Доброго времени суток. Есть обработка, которая переводит прайс-лист в yml файл. Как добавить в этот файл строчку :
<!DOCTYPE yml_catalog SYSTEM "shops.dtd">

как по стандарту?
  Форум: Корзина · Просмотр сообщения: #132670 · Ответов: 1 · Просмотров: 1269
 

>  Выгрузка в yml
Murano
Отправлено: 27.09.17, 11:55


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 20.07.17
Пользователь №: 56981


Доброго времени суток. Имеется обработка для выгрузки прайс-листа в yml файл, а как сделать чтобы вторым рядком в нем было
<!DOCTYPE yml_catalog SYSTEM "shops.dtd">
как по стандарту?
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #132668 · Ответов: 16 · Просмотров: 9665
 

>  Ошибка с выгрузкой данных в формат yml
Murano
Отправлено: 26.09.17, 14:34


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 20.07.17
Пользователь №: 56981


salton @ Сегодня, 15:31 * ,

НА данный момент только эта
  Форум: Корзина · Просмотр сообщения: #132619 · Ответов: 5 · Просмотров: 1923
 

>  Ошибка с выгрузкой данных в формат yml
Murano
Отправлено: 26.09.17, 13:38


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 20.07.17
Пользователь №: 56981


Вот весь модуль объекта, обработка вроде и формирует сам скелет этого файла, но данные не выводит, почему-то. Как бы я не пытался, но не могу найти ошибку, поэтому прошу о помощи у вас, господа.
//Процедура определяет текущую конфигурацию
// Отталкиваясь от конфигурации будет запущена
// своя процедура для выгрузки
Процедура ПолучитьТекущуюКонфигурацию() Экспорт
    ТекущаяКонфигурация = Метаданные.Имя;
КонецПроцедуры

Функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ",") Экспорт
    
    МассивСтрок = Новый Массив();
    Если Разделитель = " " Тогда
        Стр = СокрЛП(Стр);
        Пока Истина Цикл
            Поз = Найти(Стр,Разделитель);
            Если Поз=0 Тогда
                МассивСтрок.Добавить(Стр);
                Возврат МассивСтрок;
            КонецЕсли;
            МассивСтрок.Добавить(Лев(Стр,Поз-1));
            Стр = СокрЛ(Сред(Стр,Поз));
        КонецЦикла;
    Иначе
        ДлинаРазделителя = СтрДлина(Разделитель);
        Пока Истина Цикл
            Поз = Найти(Стр,Разделитель);
            Если Поз=0 Тогда
                МассивСтрок.Добавить(Стр);
                Возврат МассивСтрок;
            КонецЕсли;
            МассивСтрок.Добавить(Лев(Стр,Поз-1));
            Стр = Сред(Стр,Поз+ДлинаРазделителя);
        КонецЦикла;
    КонецЕсли;
    
КонецФункции // глРазложить

// На вход идет выборка из результата запроса
//&НаСервере
Процедура СохранитьВКаталог(ВыборкаТоваров) Экспорт
    
    // Проверим существование папки для записи изображений
    Если ЛокальнаяВыгрузка = Ложь Тогда
        Каталог = "C:\1C";
    КонецЕсли;  
    ПутьКИзображениям =Каталог + "\Picture\";
    КоличествоВыгруженныхТоваров = 0;
    ПапкаКатолога = Новый Файл(Каталог);
    Если Не ПапкаКатолога.Существует() Тогда
        СоздатьКаталог(ПутьКИзображениям);
    КонецЕсли;
    ПапкаХранилища = Новый Файл(ПутьКИзображениям);
    // Очищаем каталог перд загрзузкой новых файлов
    Если Не ПапкаХранилища.Существует() Тогда
        СоздатьКаталог(ПутьКИзображениям);
    Иначе
        Попытка
            УдалитьФайлы(ПутьКИзображениям,"*.*");
        Исключение
            Сообщить(ОписаниеОшибки());
        КонецПопытки;
    КонецЕсли;
    
    
    ЗаписьХМL = Новый ЗаписьXML;
    
    ЗаписьХМL.ОткрытьФайл(Каталог + "\" + Организация + ".xml");
    
    // Записать директиву
    ЗаписьХМL.ЗаписатьОбъявлениеXML();
    //ЗаписьХМL.ЗаписатьНачалоЭлемента(Строка("OCTYPE xml_catalog SYSTEM" +" " + "hops.dtd"));
    ЗаписьХМL.ЗаписатьНачалоЭлемента("yml_catalog");
    ЗаписьХМL.ЗаписатьАтрибут("date",Строка(Формат(КонецДня(ТекущаяДата()) - 3539, "ДФ=yyyy-MM-dd")+" "+Формат(КонецДня(ТекущаяДата()) - 3539, "ДФ=ЧЧ")+":"+Формат(КонецДня(ТекущаяДата()) - 3539, "ДФ=мм")));
    ЗаписьХМL.ЗаписатьНачалоЭлемента("shop");
    // начинаем обход результата запроса
    
    ЗаписьХМL.ЗаписатьНачалоЭлемента("name");
    ЗаписьХМL.ЗаписатьТекст    (Строка("HBH"));
    //Operation name;
    ЗаписьХМL.ЗаписатьКонецЭлемента();
    
    //ВыборкаНоменклатура = ВыборкаНоменклатураРодитель.Выбрать();
    //Пока ВыборкаНоменклатура.Следующий() Цикл
        
    ЗаписьХМL.ЗаписатьНачалоЭлемента("company");
    ЗаписьХМL.ЗаписатьТекст    (Строка("Berkut"));
    //company name;
    ЗаписьХМL.ЗаписатьКонецЭлемента();
    
    ЗаписьХМL.ЗаписатьНачалоЭлемента("url");
    //url;
    ЗаписьХМL.ЗаписатьКонецЭлемента();
    
    ЗаписьХМL.ЗаписатьНачалоЭлемента("currencies");
    ЗаписьХМL.ЗаписатьТекст (Строка("UAH"));
    ЗаписьХМL.ЗаписатьКонецЭлемента();
    
    //ОбходПоГруппирокам = ОбходРезультатаЗапроса.ПоГруппировкам;
    ТЗКатегории = ВыборкаТоваров.Скопировать();
    ТЗКатегории.Свернуть("НоменклатураРодитель");
    //ВыборкаНоменклатураРодитель = ТЗКатегории;
    
    ЗаписьХМL.ЗаписатьНачалоЭлемента("categories");
        Для каждого СтрокаПеребора Из  ТЗКатегории Цикл    
        ЗаписьХМL.ЗаписатьНачалоЭлемента("category");
        ЗаписьХМL.ЗаписатьАтрибут("id",Прав(СтрокаПеребора.НоменклатураРодитель.Код,7 ));
        ЗаписьХМL.ЗаписатьТекст(Строка(СтрокаПеребора.НоменклатураРодитель.Наименование));
        ЗаписьХМL.ЗаписатьКонецЭлемента();
        КонецЦикла;
   ЗаписьХМL.ЗаписатьКонецЭлемента();
    
    ЗаписьХМL.ЗаписатьНачалоЭлемента("offers");    
    
    //Пока ВыборкаТоваров.Следующий() Цикл
    Для каждого НоваяПеременнаяЦикла из ВыборкаТоваров цикл
        ЗаписьХМL.ЗаписатьНачалоЭлемента("offer");      
        
        Если ЗначениеЗаполнено(НоваяПеременнаяЦикла.Код) Тогда
            КоличествоВыгруженныхТоваров = КоличествоВыгруженныхТоваров + 1;
            
            ЗаписьХМL.ЗаписатьАтрибут("id",Прав(НоваяПеременнаяЦикла.Код,7 ));
            Если ВыборкаТоваров.Остаток > 0 И НЕ НоваяПеременнаяЦикла.НоменклатураСсылка.шЗаказная Тогда
                ЗаписьХМL.ЗаписатьАтрибут("available",Строка("в наличии"));
            ИначеЕсли НоваяПеременнаяЦикла.Остаток >= 0 И НоваяПеременнаяЦикла.НоменклатураСсылка.шЗаказная Тогда
                ЗаписьХМL.ЗаписатьАтрибут("available",Строка("под заказ"));    
            Иначе
                ЗаписьХМL.ЗаписатьАтрибут("available",Строка("наличие уточняйте"));
            КонецЕсли;
            
            ЗаписьХМL.ЗаписатьНачалоЭлемента("url");
            ///
            ЗаписьХМL.ЗаписатьКонецЭлемента();
            
           ЗаписьХМL.ЗаписатьНачалоЭлемента("price");
               Если ЗначениеЗаполнено(ВыборкаТоваров.Цена) Тогда
              ЗаписьХМL.ЗаписатьТекст(СтрЗаменить(Строка(ВыборкаТоваров.Цена),",","."));
               КонецЕсли;
                ЗаписьХМL.ЗаписатьКонецЭлемента();
            
            ЗаписьХМL.ЗаписатьНачалоЭлемента("currencyId");
            ЗаписьХМL.ЗаписатьТекст (Строка("UAH"));
            ЗаписьХМL.ЗаписатьКонецЭлемента();
            
            ЗаписьХМL.ЗаписатьНачалоЭлемента("measure");
            ЗаписьХМL.ЗаписатьТекст (Строка(ВыборкаТоваров.ЕдиницаИзмерения));
            ЗаписьХМL.ЗаписатьКонецЭлемента();
            
            ЗаписьХМL.ЗаписатьНачалоЭлемента("categoryId");
            ЗаписьХМL.ЗаписатьТекст("id",Прав(ВыборкаТоваров.НоменклатураРодитель.Код,7 ));
            ЗаписьХМL.ЗаписатьКонецЭлемента();
            
            ЗаписьХМL.ЗаписатьНачалоЭлемента("picture");
            //ЗаписьХМL.ЗаписатьТекст (ВыборкаТоваров.НаименованиеПолное);
            ЗаписьХМL.ЗаписатьКонецЭлемента();
            
            //  ЗДЕСЬ ДОЛЖЕН БЫТЬ   <vendor>Польша</vendor>
            //                      <vendorCode></vendorCode>
            
            ЗаписьХМL.ЗаписатьНачалоЭлемента("model");
            ЗаписьХМL.ЗаписатьТекст(ВыборкаТоваров.Наименование);
            ЗаписьХМL.ЗаписатьКонецЭлемента();
            
            ЗаписьХМL.ЗаписатьНачалоЭлемента("description");
            ЗаписьХМL.ЗаписатьТекст (ВыборкаТоваров.Описание);
            ЗаписьХМL.ЗаписатьКонецЭлемента();
            
        КонецЕСли;
        ЗаписьХМL. ЗаписатьКонецЭлемента(); //Относится к "offer"
    КонецЦикла;    
    
    ЗаписьХМL.ЗаписатьКонецЭлемента(); //Относится к "offers"
    ЗаписьХМL.ЗаписатьКонецЭлемента(); //Относится к элементу "shop"
    ЗаписьХМL.ЗаписатьКонецЭлемента(); //Относится к элементу "yml_catalog"
    ЗаписьХМL.Закрыть();
    
    Если ЛокальнаяВыгрузка = Ложь Тогда
        ОтправитьФайлНаСервер(КоличествоВыгруженныхТоваров);
    Иначе
        Сообщить("Выгрузка успешно завершилась. Выгружено " + КоличествоВыгруженныхТоваров + " товаров");
    КонецЕсли;

КонецПроцедуры

// Процедура записывает изображения в каталог
Процедура ИзвлечьИзХранилища(Хранилище,ИмяФайлаХранилища, ПапкаХранилища)    
    Префикс = "_1";
    Файл=Хранилище.Получить();
    ИмяФайла=СокрЛП(ПапкаХранилища)+СокрЛП(ИмяФайлаХранилища)+ Префикс + ".bmp";
    Файл.Записать(ИмяФайла);
    //Сообщить("Файл записан: "+ИмяФайла);    
КонецПроцедуры

// В случае, когда не стоит галочка "Выгружать основное изображение",
// выгружаются все имеющиеся изображения у позиции номенклатуры
Процедура ВыгрузитьГруппуИзображений(Номенклатура,ПутьКИзображениям)
    
    Запрос = Новый Запрос;
    Запрос.Текст =  "ВЫБРАТЬ
                    |    ХранилищеДополнительнойИнформации.Объект.Код КАК НоменклатураКод,
                    |    ХранилищеДополнительнойИнформации.Хранилище
                    |ИЗ
                    |    Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
                    |ГДЕ
                    |    ХранилищеДополнительнойИнформации.ВидДанных = &Изображение
                    |    И ХранилищеДополнительнойИнформации.Объект = &Номенклатура";
    Запрос.УстановитьПараметр("Изображение", Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение);
    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    РезультатЗапроса = Запрос.Выполнить().Выбрать();
    Префикс = 0;
    Пока РезультатЗапроса.Следующий() Цикл
        Префикс = Префикс + 1;
    Файл= РезультатЗапроса.Хранилище.Получить();
    ИмяФайла=СокрЛП(ПутьКИзображениям)+СокрЛП(РезультатЗапроса.НоменклатураКод)+ "_" + Префикс + ".bmp";
    Файл.Записать(ИмяФайла);
    КонецЦикла;
        
КонецПроцедуры
  
Процедура ОтправитьФайлНаСервер(КоличествоВыгруженныхТоваров) Экспорт
    // Имя файла которое будем передавать
    ИмяФайлаДанных = ДобавитьФайлыВАрхив();
    // Определяем разделитель разделов — границу boundary в POST-запросе.
    Boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", "");
    //Определяем имя файла ответа от веб-сервера
    ИмяФайлаОтвета = КаталогВременныхФайлов() + "answer.tmp";
      //Закодируем содержимое файла по Base64, то есть преобразуем его к URL-неактивному виду.
    СодержимоеZIP = Base64Строка(Новый ДвоичныеДанные(ИмяФайлаДанных));
    
    ИмяФайлаОтправки = КаталогВременныхФайлов() + "post.txt";

    ФайлОтправки = Новый ЗаписьТекста(ИмяФайлаОтправки, КодировкаТекста.ANSI, Символы.ПС, ЛОЖЬ);
    //Определяем раздел двоичных данных
    ФайлОтправки.ЗаписатьСтроку("--" + Boundary);
    //Указываем имя файла для передачи
    ФайлОтправки.ЗаписатьСтроку("Content-Disposition: form-data; name=""data""; filename=""" + ИмяФайлаДанных + """");
    //Указываем тип передаваемых данных.
    //С таким же успехом в Content-Type можно указать application/x-octet-stream
    ФайлОтправки.ЗаписатьСтроку("Content-Type: application/x-zip-compressed" + Символы.ПС + Символы.ПС);
    //Записываем кодированные двоичные данные
    ФайлОтправки.ЗаписатьСтроку(СодержимоеZIP);
    ФайлОтправки.ЗаписатьСтроку("--" + Boundary);
    
     //Соответствует HTML-тэгу input type="submit" name="submit" value="Submit" /
    ФайлОтправки.ЗаписатьСтроку("--" + Boundary);
    ФайлОтправки.ЗаписатьСтроку("Content-disposition: form-data; name=""submit""" + Символы.ПС);
    ФайлОтправки.ЗаписатьСтроку("1");
    ФайлОтправки.ЗаписатьСтроку("--" + Boundary);

    //Соответствует HTML-тэгу
    //input type="text" name="some_field" value="Some text" /
    ФайлОтправки.ЗаписатьСтроку("--" + Boundary);
    ФайлОтправки.ЗаписатьСтроку("Content-disposition: form-data; name=""ID""" + Символы.ПС);
    ФайлОтправки.ЗаписатьСтроку(СокрЛП(Организация));
    ФайлОтправки.ЗаписатьСтроку("--" + Boundary);

    ФайлОтправки.Закрыть();
    
    // Формируем заголовок POST-запроса
    ЗаголовокHTTP = Новый Соответствие();
    //При необходимости зададим Referer, например таким образом
    //СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();
    //СерверИсточник = НСтр(СтрокаСоединения, "Srvr") + НСтр(СтрокаСоединения, "Ref");
    //ЗаголовокHTTP.Вставить("Referer", СерверИсточник);
    ЗаголовокHTTP.Вставить("ID", Организация);

    //Укажем формат данных Content-Type
    ЗаголовокHTTP.Вставить("Content-Type", "multipart/form-data; boundary=" + Boundary);

    //Укажем длину POST-запроса Content-Length
    ФайлОтправки = Новый Файл(ИмяФайлаОтправки);
    РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер());
    ЗаголовокHTTP.Вставить("Content-Length", РазмерФайлаОтправки);
        
    //http://control.neobroker.ru/cgi-bin/get_xml_1c.pl - адрес сервера
    Сервер = "";
    Порт = "";
    //ИспользоватьПрокси  =Ложь;
     Если ИспользоватьПрокси Тогда
        Прокси = Новый ИнтернетПрокси;
        Прокси.НеИспользоватьПроксиДляЛокальныхАдресов = Истина;
        Прокси.Пароль = ПарольПрокси; // укажите своё значение
        Прокси.Пользователь = ПользовательПрокси; // укажите своё значение
        НТТР = Новый HTTPСоединение(Сервер, Порт, , , Прокси);
    Иначе
        НТТР = Новый HTTPСоединение(Сервер, Порт);
    КонецЕсли;
    
    
    АдресСкрипта = "/cgi-bin/get_xml_1c.pl"; //http:// Естественно, следует указать имя своего скрипта.
    Попытка
        НТТР.ОтправитьДляОбработки(ИмяФайлаОтправки, АдресСкрипта, ИмяФайлаОтвета, ЗаголовокHTTP);
        НТТР  = Неопределено;
    Исключение
        //Пример обработки ошибки соединения.
        #Если Клиент Тогда
            Сообщить("Неудачная попытка соединения: " + ОписаниеОшибки());
        #Иначе
            ЗаписьЖурналаРегистрации("HTTPСоединение", УровеньЖурналаРегистрации.Ошибка, , , "Неудачная попытка соединения: " + ОписаниеОшибки());
        #КонецЕсли
        Возврат;
    КонецПопытки;

    //Удалим файл отправки POST-запроса. Больше он нам не нужен.
    УдалитьФайлы(ИмяФайлаОтправки);

//Отправили данные, анализируем ответ сервера.
    ФайлОтвета = Новый Файл(ИмяФайлаОтвета);
    Если ФайлОтвета.Существует() Тогда
        ТекстОтвета = Новый ТекстовыйДокумент();
        ТекстОтвета.Прочитать(ИмяФайлаОтвета);
        Если ТекстОтвета.КоличествоСтрок() > 0 Тогда
            ОтветСервера = ТекстОтвета.ПолучитьТекст();
            #Если Клиент Тогда
                Сообщить(ОтветСервера);
            #КонецЕсли
        Иначе
            #Если Клиент Тогда
                Сообщить("Отправка файла на сервер: Получен пустой ответ сервера.");
            #Иначе
                ЗаписьЖурналаРегистрации("HTTPСоединение", УровеньЖурналаРегистрации.Ошибка, , , "Получен пустой ответ сервера.");
            #КонецЕсли
        КонецЕсли;

        УдалитьФайлы(ИмяФайлаОтвета);
    Иначе
        #Если Клиент Тогда
            Сообщить("Отправка файла на сервер: Ответ сервера не получен.");
        #Иначе
            ЗаписьЖурналаРегистрации("HTTPСоединение", УровеньЖурналаРегистрации.Ошибка, , , "Ответ сервера не получен.");
        #КонецЕсли
    КонецЕсли;
    Сообщить("Выгрузка успешно завершилась! Выгружено " + КоличествоВыгруженныхТоваров + " товаров");
    УдалитьФайлы(Каталог);

        
КонецПроцедуры

Функция ДобавитьФайлыВАрхив() Экспорт
     ПутьКФайлам  =Каталог;
    ПутьКФайлам = Новый Файл(ПутьКФайлам);
    Если Не ПутьКФайлам.Существует() Тогда
    СоздатьКаталог(ПутьКФайлам);
    КонецЕсли;

    ИмяФайлаДанных = Каталог+"\" + СокрЛП(Организация) + ".zip";
    //УдалитьФайлы(ИмяФайлаДанных);
    ФайлZip = Новый ЗаписьZipФайла;
    ФайлZip.Открыть(ИмяФайлаДанных);
    ФайлZip.Добавить(Каталог+"\", РежимСохраненияПутейZIP.СохранятьОтносительныеПути,РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно);
    Попытка
        ФайлZip.Записать();    
        Возврат ИмяФайлаДанных;
    Исключение        
    //    Сообщить(ОписаниеОшибки());
    ДобавитьФайлыВАрхив();
        //Возврат Неопределено;
    КонецПопытки;
КонецФункции

Процедура ИнициализацияПостроителяОтчета() Экспорт
            
    ТекстЗапроса =
        "ВЫБРАТЬ
        |    Номенклатура.Ссылка КАК Номенклатура
        |ПОМЕСТИТЬ ВТНоменклатура
        |{ВЫБРАТЬ
        |    Номенклатура.* КАК Номенклатура}
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ВТНоменклатура.Номенклатура.Код КАК Код,
        |    ВТНоменклатура.Номенклатура.Наименование КАК Наименование,
        |    ВТНоменклатура.Номенклатура.Артикул КАК Артикул,
        |    ВТНоменклатура.Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
        |    ВТНоменклатура.Номенклатура.Комментарий КАК Комментарий,
        |    ВТНоменклатура.Номенклатура.НаименованиеПолное КАК НаименованиеПолное,
        |    ВТНоменклатура.Номенклатура.ДополнительноеОписаниеНоменклатуры КАК Описание,
        |    ЦеныНоменклатурыСрезПоследних.Цена,
        |    ВТНоменклатура.Номенклатура.Родитель КАК НоменклатураРодитель,
        |    ВТНоменклатура.Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
        |    ТоварыНаСкладахОстатки.Склад,
        |    ЦеныНоменклатурыСрезПоследних.ТипЦен,
        |    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток,
        |    ВТНоменклатура.Номенклатура.ОсновноеИзображение.Хранилище КАК Хранилище,
        |    ВТНоменклатура.Номенклатура.ОсновноеИзображение.Объект.Код КАК КодИзображения,
        |    ВТНоменклатура.Номенклатура.Ссылка КАК НоменклатураСсылка
        |{ВЫБРАТЬ
        |    НоменклатураСсылка.* КАК Номенклатура,
        |    ТипЦен.* КАК ТипЦен,
        |    Склад.* КАК Склад}
        |ИЗ
        |    ВТНоменклатура КАК ВТНоменклатура
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, {(Номенклатура).* КАК Номенклатура, (Склад).* КАК Склад}) КАК ТоварыНаСкладахОстатки
        |        ПО ВТНоменклатура.Номенклатура.Ссылка = ТоварыНаСкладахОстатки.Номенклатура
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, {(Номенклатура).* КАК Номенклатура, (ТипЦен).* КАК ТипЦен}) КАК ЦеныНоменклатурыСрезПоследних
        |        ПО ВТНоменклатура.Номенклатура.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура
        |ГДЕ
        |    ТоварыНаСкладахОстатки.Склад.ТипЦенРозничнойТорговли = ЦеныНоменклатурыСрезПоследних.ТипЦен
        |{ГДЕ
        |    ВТНоменклатура.Номенклатура.Ссылка.* КАК Номенклатура,
        |    ЦеныНоменклатурыСрезПоследних.ТипЦен.* КАК ТипЦен,
        |    ТоварыНаСкладахОстатки.Склад.* КАК Склад}
        |
        |УПОРЯДОЧИТЬ ПО
        |    НоменклатураСсылка
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |УНИЧТОЖИТЬ ВТНоменклатура";
    
    
    ПостроительОтчета.Текст = ТекстЗапроса;

    ПараметрыПостроителя = ПостроительОтчета.Параметры;
    //ПараметрыПостроителя.Вставить("ТипЦен", ТипЦен);
    ПараметрыПостроителя.Вставить("ВидДанных", Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение);
        
КонецПроцедуры


Процедура НастроитьПостроительОтчета() Экспорт
    
    Перем НастройкиПостроителяОтчета;
    НастройкиПостроителяОтчета = ПостроительОтчета.ПолучитьНастройки();
    ИнициализацияПостроителяОтчета();
    ПостроительОтчета.УстановитьНастройки(НастройкиПостроителяОтчета);
    
КонецПроцедуры
  Форум: Корзина · Просмотр сообщения: #132614 · Ответов: 5 · Просмотров: 1923
 

>  Проблема в обработке для выгрузки прайс-листа yml
Murano
Отправлено: 26.09.17, 13:07


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 20.07.17
Пользователь №: 56981


pablo @ Сегодня, 11:35 * ,
То есть, так?
Для каждого НоваяПеременнаяЦикла из ВыборкаТоваров цикл
        ЗаписьХМL.ЗаписатьНачалоЭлемента("offer");      
        
        Если ЗначениеЗаполнено(НоваяПеременнаяЦикла.Код) Тогда
            КоличествоВыгруженныхТоваров = КоличествоВыгруженныхТоваров + 1;
            
            ЗаписьХМL.ЗаписатьАтрибут("id",Прав(НоваяПеременнаяЦикла.Код,7 ));
            Если ВыборкаТоваров.Остаток > 0 И НЕ НоваяПеременнаяЦикла.НоменклатураСсылка.шЗаказная Тогда
                ЗаписьХМL.ЗаписатьАтрибут("available",Строка("в наличии"));
            ИначеЕсли НоваяПеременнаяЦикла.Остаток >= 0 И НоваяПеременнаяЦикла.НоменклатураСсылка.шЗаказная Тогда
                ЗаписьХМL.ЗаписатьАтрибут("available",Строка("под заказ"));    
            Иначе
                ЗаписьХМL.ЗаписатьАтрибут("available",Строка("наличие уточняйте"));
            КонецЕсли;


Все равно данные не выгружает

salton @ Сегодня, 11:55 * ,
{ВнешняяОбработка.ВыгрузкаДанныхПоНоменклатуре.МодульОбъекта(102)}: Метод объекта не обнаружен (Выгрузить)
    ТЗКатегории = ВыборкаТоваров.Выгрузить();

Может из-за того это, что я не исправил "бока"?
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #132612 · Ответов: 11 · Просмотров: 1996
 

>  Проблема в обработке для выгрузки прайс-листа yml
Murano
Отправлено: 26.09.17, 10:29


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 20.07.17
Пользователь №: 56981


sava1 @ Сегодня, 11:15 * ,
У меня только внутри этой процедуры используется
Процедура СохранитьВКаталог(ВыборкаТоваров)


pablo @ Сегодня, 11:19 * ,
Простите, но не понял что именно заменить в последующем коде...
    //Пока ВыборкаТоваров.Следующий() Цикл
    Для каждого НоваяПеременнаяЦикла из ВыборкаТоваров цикл
        ЗаписьХМL.ЗаписатьНачалоЭлемента("offer");      
        
        Если ЗначениеЗаполнено(ВыборкаТоваров.Код) Тогда
            КоличествоВыгруженныхТоваров = КоличествоВыгруженныхТоваров + 1;
            
            ЗаписьХМL.ЗаписатьАтрибут("id",Прав(ВыборкаТоваров.Код,7 ));
            Если ВыборкаТоваров.Остаток > 0 И НЕ ВыборкаТоваров.НоменклатураСсылка.шЗаказная Тогда
                ЗаписьХМL.ЗаписатьАтрибут("available",Строка("в наличии"));
            ИначеЕсли ВыборкаТоваров.Остаток >= 0 И ВыборкаТоваров.НоменклатураСсылка.шЗаказная Тогда
                ЗаписьХМL.ЗаписатьАтрибут("available",Строка("под заказ"));    
            Иначе
                ЗаписьХМL.ЗаписатьАтрибут("available",Строка("наличие уточняйте"));
            КонецЕсли;
            
            ЗаписьХМL.ЗаписатьНачалоЭлемента("url");
            ///
            ЗаписьХМL.ЗаписатьКонецЭлемента();
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #132602 · Ответов: 11 · Просмотров: 1996
 

>  Проблема в обработке для выгрузки прайс-листа yml
Murano
Отправлено: 26.09.17, 10:06


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 20.07.17
Пользователь №: 56981


pablo @ Сегодня, 11:00 * ,
Прошу прощения.
Вот эта процедура:
Процедура СохранитьВКаталог(ВыборкаТоваров) Экспорт
    
    // Проверим существование папки для записи изображений
    Если ЛокальнаяВыгрузка = Ложь Тогда
        Каталог = "C:\1C";
    КонецЕсли;  
    ПутьКИзображениям =Каталог + "\Picture\";
    КоличествоВыгруженныхТоваров = 0;
    ПапкаКатолога = Новый Файл(Каталог);
    Если Не ПапкаКатолога.Существует() Тогда
        СоздатьКаталог(ПутьКИзображениям);
    КонецЕсли;
    ПапкаХранилища = Новый Файл(ПутьКИзображениям);
    // Очищаем каталог перд загрзузкой новых файлов
    Если Не ПапкаХранилища.Существует() Тогда
        СоздатьКаталог(ПутьКИзображениям);
    Иначе
        Попытка
            УдалитьФайлы(ПутьКИзображениям,"*.*");
        Исключение
            Сообщить(ОписаниеОшибки());
        КонецПопытки;
    КонецЕсли;
    
    
    ЗаписьХМL = Новый ЗаписьXML;
    
    ЗаписьХМL.ОткрытьФайл(Каталог + "\" + Организация + ".xml");
    
    // Записать директиву
    ЗаписьХМL.ЗаписатьОбъявлениеXML();
    //ЗаписьХМL.ЗаписатьНачалоЭлемента(Строка("OCTYPE xml_catalog SYSTEM" +" " + "hops.dtd"));
    ЗаписьХМL.ЗаписатьНачалоЭлемента("yml_catalog");
    ЗаписьХМL.ЗаписатьАтрибут("date",Строка(Формат(КонецДня(ТекущаяДата()) - 3539, "ДФ=yyyy-MM-dd")+" "+Формат(КонецДня(ТекущаяДата()) - 3539, "ДФ=ЧЧ")+":"+Формат(КонецДня(ТекущаяДата()) - 3539, "ДФ=мм")));
    ЗаписьХМL.ЗаписатьНачалоЭлемента("shop");
    // начинаем обход результата запроса
    
    ЗаписьХМL.ЗаписатьНачалоЭлемента("name");
    ЗаписьХМL.ЗаписатьТекст    (Строка("HBH"));
    //Operation name;
    ЗаписьХМL.ЗаписатьКонецЭлемента();
    
    //ВыборкаНоменклатура = ВыборкаНоменклатураРодитель.Выбрать();
    //Пока ВыборкаНоменклатура.Следующий() Цикл
        
    ЗаписьХМL.ЗаписатьНачалоЭлемента("company");
    ЗаписьХМL.ЗаписатьТекст    (Строка("Berkut"));
    //company name;
    ЗаписьХМL.ЗаписатьКонецЭлемента();
    
    ЗаписьХМL.ЗаписатьНачалоЭлемента("url");
    //url;
    ЗаписьХМL.ЗаписатьКонецЭлемента();
    
    ЗаписьХМL.ЗаписатьНачалоЭлемента("currencies");
    ЗаписьХМL.ЗаписатьТекст (Строка("UAH"));
    ЗаписьХМL.ЗаписатьКонецЭлемента();
    
    //ОбходПоГруппирокам = ОбходРезультатаЗапроса.ПоГруппировкам;
    ТЗКатегории = ВыборкаТоваров.Скопировать();
    ТЗКатегории.Свернуть("НоменклатураРодитель");
    //ВыборкаНоменклатураРодитель = ТЗКатегории;
    
    ЗаписьХМL.ЗаписатьНачалоЭлемента("categories");
        Для каждого СтрокаПеребора Из  ТЗКатегории Цикл    
        ЗаписьХМL.ЗаписатьНачалоЭлемента("category");
        ЗаписьХМL.ЗаписатьАтрибут("id",Прав(СтрокаПеребора.НоменклатураРодитель.Код,7 ));
        ЗаписьХМL.ЗаписатьТекст(Строка(СтрокаПеребора.НоменклатураРодитель.Наименование));
        ЗаписьХМL.ЗаписатьКонецЭлемента();
        КонецЦикла;
   ЗаписьХМL.ЗаписатьКонецЭлемента();
    
    ЗаписьХМL.ЗаписатьНачалоЭлемента("offers");    
    
    Пока ВыборкаТоваров.Следующий() Цикл
        ЗаписьХМL.ЗаписатьНачалоЭлемента("offer");      
        
        Если ЗначениеЗаполнено(ВыборкаТоваров.Код) Тогда
            КоличествоВыгруженныхТоваров = КоличествоВыгруженныхТоваров + 1;
            
            ЗаписьХМL.ЗаписатьАтрибут("id",Прав(ВыборкаТоваров.Код,7 ));
            Если ВыборкаТоваров.Остаток > 0 И НЕ ВыборкаТоваров.НоменклатураСсылка.шЗаказная Тогда
                ЗаписьХМL.ЗаписатьАтрибут("available",Строка("в наличии"));
            ИначеЕсли ВыборкаТоваров.Остаток >= 0 И ВыборкаТоваров.НоменклатураСсылка.шЗаказная Тогда
                ЗаписьХМL.ЗаписатьАтрибут("available",Строка("под заказ"));    
            Иначе
                ЗаписьХМL.ЗаписатьАтрибут("available",Строка("наличие уточняйте"));
            КонецЕсли;
            
            ЗаписьХМL.ЗаписатьНачалоЭлемента("url");
            ///
            ЗаписьХМL.ЗаписатьКонецЭлемента();
            
           ЗаписьХМL.ЗаписатьНачалоЭлемента("price");
               Если ЗначениеЗаполнено(ВыборкаТоваров.Цена) Тогда
              ЗаписьХМL.ЗаписатьТекст(СтрЗаменить(Строка(ВыборкаТоваров.Цена),",","."));
               КонецЕсли;
                ЗаписьХМL.ЗаписатьКонецЭлемента();
            
            ЗаписьХМL.ЗаписатьНачалоЭлемента("currencyId");
            ЗаписьХМL.ЗаписатьТекст (Строка("UAH"));
            ЗаписьХМL.ЗаписатьКонецЭлемента();
            
            ЗаписьХМL.ЗаписатьНачалоЭлемента("measure");
            ЗаписьХМL.ЗаписатьТекст (Строка(ВыборкаТоваров.ЕдиницаИзмерения));
            ЗаписьХМL.ЗаписатьКонецЭлемента();
            
            ЗаписьХМL.ЗаписатьНачалоЭлемента("categoryId");
            ЗаписьХМL.ЗаписатьТекст("id",Прав(ВыборкаТоваров.НоменклатураРодитель.Код,7 ));
            ЗаписьХМL.ЗаписатьКонецЭлемента();
            
            ЗаписьХМL.ЗаписатьНачалоЭлемента("picture");
            //ЗаписьХМL.ЗаписатьТекст (ВыборкаТоваров.НаименованиеПолное);
            ЗаписьХМL.ЗаписатьКонецЭлемента();
            
            //  ЗДЕСЬ ДОЛЖЕН БЫТЬ   <vendor>Польша</vendor>
            //                      <vendorCode></vendorCode>
            
            ЗаписьХМL.ЗаписатьНачалоЭлемента("model");
            ЗаписьХМL.ЗаписатьТекст(ВыборкаТоваров.Наименование);
            ЗаписьХМL.ЗаписатьКонецЭлемента();
            
            ЗаписьХМL.ЗаписатьНачалоЭлемента("description");
            ЗаписьХМL.ЗаписатьТекст (ВыборкаТоваров.Описание);
            ЗаписьХМL.ЗаписатьКонецЭлемента();
            
        КонецЕСли;
        ЗаписьХМL. ЗаписатьКонецЭлемента(); //Относится к "offer"
    КонецЦикла;    
    
    ЗаписьХМL.ЗаписатьКонецЭлемента(); //Относится к "offers"
    ЗаписьХМL.ЗаписатьКонецЭлемента(); //Относится к элементу "shop"
    ЗаписьХМL.ЗаписатьКонецЭлемента(); //Относится к элементу "yml_catalog"
    ЗаписьХМL.Закрыть();
    
    Если ЛокальнаяВыгрузка = Ложь Тогда
        ОтправитьФайлНаСервер(КоличествоВыгруженныхТоваров);
    Иначе
        Сообщить("Выгрузка успешно завершилась. Выгружено " + КоличествоВыгруженныхТоваров + " товаров");
    КонецЕсли;

КонецПроцедуры


Процедура с запросом:
Процедура ИнициализацияПостроителяОтчета() Экспорт
            
    ТекстЗапроса =
        "ВЫБРАТЬ
        |    Номенклатура.Ссылка КАК Номенклатура
        |ПОМЕСТИТЬ ВТНоменклатура
        |{ВЫБРАТЬ
        |    Номенклатура.* КАК Номенклатура}
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ВТНоменклатура.Номенклатура.Код КАК Код,
        |    ВТНоменклатура.Номенклатура.Наименование КАК Наименование,
        |    ВТНоменклатура.Номенклатура.Артикул КАК Артикул,
        |    ВТНоменклатура.Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
        |    ВТНоменклатура.Номенклатура.Комментарий КАК Комментарий,
        |    ВТНоменклатура.Номенклатура.НаименованиеПолное КАК НаименованиеПолное,
        |    ВТНоменклатура.Номенклатура.ДополнительноеОписаниеНоменклатуры КАК Описание,
        |    ЦеныНоменклатурыСрезПоследних.Цена,
        |    ВТНоменклатура.Номенклатура.Родитель КАК НоменклатураРодитель,
        |    ВТНоменклатура.Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
        |    ТоварыНаСкладахОстатки.Склад,
        |    ЦеныНоменклатурыСрезПоследних.ТипЦен,
        |    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток,
        |    ВТНоменклатура.Номенклатура.ОсновноеИзображение.Хранилище КАК Хранилище,
        |    ВТНоменклатура.Номенклатура.ОсновноеИзображение.Объект.Код КАК КодИзображения,
        |    ВТНоменклатура.Номенклатура.Ссылка КАК НоменклатураСсылка
        |{ВЫБРАТЬ
        |    НоменклатураСсылка.* КАК Номенклатура,
        |    ТипЦен.* КАК ТипЦен,
        |    Склад.* КАК Склад}
        |ИЗ
        |    ВТНоменклатура КАК ВТНоменклатура
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, {(Номенклатура).* КАК Номенклатура, (Склад).* КАК Склад}) КАК ТоварыНаСкладахОстатки
        |        ПО ВТНоменклатура.Номенклатура.Ссылка = ТоварыНаСкладахОстатки.Номенклатура
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, {(Номенклатура).* КАК Номенклатура, (ТипЦен).* КАК ТипЦен}) КАК ЦеныНоменклатурыСрезПоследних
        |        ПО ВТНоменклатура.Номенклатура.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура
        |ГДЕ
        |    ТоварыНаСкладахОстатки.Склад.ТипЦенРозничнойТорговли = ЦеныНоменклатурыСрезПоследних.ТипЦен
        |{ГДЕ
        |    ВТНоменклатура.Номенклатура.Ссылка.* КАК Номенклатура,
        |    ЦеныНоменклатурыСрезПоследних.ТипЦен.* КАК ТипЦен,
        |    ТоварыНаСкладахОстатки.Склад.* КАК Склад}
        |
        |УПОРЯДОЧИТЬ ПО
        |    НоменклатураСсылка
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |УНИЧТОЖИТЬ ВТНоменклатура";
    
    
    ПостроительОтчета.Текст = ТекстЗапроса;

    ПараметрыПостроителя = ПостроительОтчета.Параметры;
    //ПараметрыПостроителя.Вставить("ТипЦен", ТипЦен);
    ПараметрыПостроителя.Вставить("ВидДанных", Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение);
        
КонецПроцедуры
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #132599 · Ответов: 11 · Просмотров: 1996
 

>  Проблема в обработке для выгрузки прайс-листа yml
Murano
Отправлено: 26.09.17, 9:54


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 20.07.17
Пользователь №: 56981


pablo @ Сегодня, 10:49 * ,
ТАкая вот ошибка
{ВнешняяОбработка.ВыгрузкаДанныхПоНоменклатуре.МодульОбъекта(113)}: Метод объекта не обнаружен (Следующий)
    Пока ВыборкаТоваров.Следующий() Цикл


Сделал как вы сказали:
ЗаписьХМL.ЗаписатьНачалоЭлемента("categories");
        Для каждого СтрокаПеребора Из  ТЗКатегории Цикл    
        ЗаписьХМL.ЗаписатьНачалоЭлемента("category");
        ЗаписьХМL.ЗаписатьАтрибут("id",Прав(СтрокаПеребора.НоменклатураРодитель.Код,7 ));
        ЗаписьХМL.ЗаписатьТекст(Строка(СтрокаПеребора.НоменклатураРодитель.Наименование));
        ЗаписьХМL.ЗаписатьКонецЭлемента();
        КонецЦикла;
   ЗаписьХМL.ЗаписатьКонецЭлемента();


Ошибка в этой строке:
 Пока ВыборкаТоваров.Следующий() Цикл
        ЗаписьХМL.ЗаписатьНачалоЭлемента("offer");
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #132594 · Ответов: 11 · Просмотров: 1996
 

>  Проблема в обработке для выгрузки прайс-листа yml
Murano
Отправлено: 26.09.17, 9:34


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 20.07.17
Пользователь №: 56981


Доброго времени суток.
Есть обработка, которая должна выводить данные в .yml, запрос выдает правильные данные, забил его в процедуру
Но вот на этом этапе не видит почему-то "Строка"
    
    
    ТЗКатегории = ВыборкаТоваров.Скопировать();
    ТЗКатегории.Свернуть("НоменклатураРодитель");
    
    
    ЗаписьХМL.ЗаписатьНачалоЭлемента("categories");
        Для каждого Строка Из  ТЗКатегории Цикл    
        ЗаписьХМL.ЗаписатьНачалоЭлемента("category");
        ЗаписьХМL.ЗаписатьАтрибут("id",Прав(Строка.НоменклатураРодитель.Код,7 ));
        ЗаписьХМL.ЗаписатьТекст(Строка(Строка.НоменклатураРодитель.Наименование));
        ЗаписьХМL.ЗаписатьКонецЭлемента();
        КонецЦикла;
   ЗаписьХМL.ЗаписатьКонецЭлемента();


ДА и во всей обработке не выводит данные, в чем может быть проблема? Я много не знаю и не понимаю, поэтому не один день убил на поиски ответа, поэтому прошу вашей помощи
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #132592 · Ответов: 11 · Просмотров: 1996
 

>  Выгрузка в yml
Murano
Отправлено: 25.09.17, 13:38


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 20.07.17
Пользователь №: 56981


salton @ Сегодня, 14:32 * ,
09000000.gif
Чувствую себя как в первый раз на высшей математике
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #132564 · Ответов: 16 · Просмотров: 9665
 

>  Выгрузка в yml
Murano
Отправлено: 25.09.17, 13:26


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 20.07.17
Пользователь №: 56981


salton @ Сегодня, 14:14 * ,
1. Она есть, но мне нужно в ней с запроса данные во вложенный запрос вставить только, да?
2. Тоже есть, и выгрузка есть
3. По сути, то в чем была изначально проблема.

во внешней обработке и делаю
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #132562 · Ответов: 16 · Просмотров: 9665
 

>  Выгрузка в yml
Murano
Отправлено: 25.09.17, 13:08


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 20.07.17
Пользователь №: 56981


salton @ Сегодня, 14:05 * ,
мой построитель отчета выглядит так:
Процедура ИнициализацияПостроителяОтчета() Экспорт
            
    ТекстЗапроса =
        "ВЫБРАТЬ
        |    Номенклатура.Ссылка КАК Номенклатура
        |ПОМЕСТИТЬ ВТНоменклатура
        |{ВЫБРАТЬ
        |    Номенклатура.* КАК Номенклатура}
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ВТНоменклатура.Номенклатура.Код КАК Код,
        |    ВТНоменклатура.Номенклатура.Наименование КАК Наименование,
        |    ВТНоменклатура.Номенклатура.Артикул КАК Артикул,
        |    ВТНоменклатура.Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
        |    ВТНоменклатура.Номенклатура.Комментарий КАК Комментарий,
        |    ВТНоменклатура.Номенклатура.НаименованиеПолное КАК НаименованиеПолное,
        |    ВТНоменклатура.Номенклатура.ДополнительноеОписаниеНоменклатуры КАК Описание,
        |    ЦеныНоменклатурыСрезПоследних.Цена,
        |    ВТНоменклатура.Номенклатура.Родитель КАК НоменклатураРодитель,
        |    ВТНоменклатура.Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
        |    ТоварыНаСкладахОстатки.Склад,
        |    ЦеныНоменклатурыСрезПоследних.ТипЦен,
        |    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток,
        |    ВТНоменклатура.Номенклатура.ОсновноеИзображение.Хранилище КАК Хранилище,
        |    ВТНоменклатура.Номенклатура.ОсновноеИзображение.Объект.Код КАК КодИзображения,
        |    ВТНоменклатура.Номенклатура.Ссылка КАК НоменклатураСсылка
        |{ВЫБРАТЬ
        |    НоменклатураСсылка.* КАК Номенклатура,
        |    ТипЦен.* КАК ТипЦен,
        |    Склад.* КАК Склад}
        |ИЗ
        |    ВТНоменклатура КАК ВТНоменклатура
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, {(Номенклатура).* КАК Номенклатура, (Склад).* КАК Склад}) КАК ТоварыНаСкладахОстатки
        |        ПО ВТНоменклатура.Номенклатура.Ссылка = ТоварыНаСкладахОстатки.Номенклатура
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, {(Номенклатура).* КАК Номенклатура, (ТипЦен).* КАК ТипЦен}) КАК ЦеныНоменклатурыСрезПоследних
        |        ПО ВТНоменклатура.Номенклатура.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура
        |ГДЕ
        |    ТоварыНаСкладахОстатки.Склад.ТипЦенРозничнойТорговли = ЦеныНоменклатурыСрезПоследних.ТипЦен
        |{ГДЕ
        |    ВТНоменклатура.Номенклатура.Ссылка.* КАК Номенклатура,
        |    ЦеныНоменклатурыСрезПоследних.ТипЦен.* КАК ТипЦен,
        |    ТоварыНаСкладахОстатки.Склад.* КАК Склад}
        |
        |УПОРЯДОЧИТЬ ПО
        |    НоменклатураСсылка
        |ИТОГИ ПО
        |    НоменклатураРодитель
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |УНИЧТОЖИТЬ ВТНоменклатура";
    
    
    ПостроительОтчета.Текст = ТекстЗапроса;

    ПараметрыПостроителя = ПостроительОтчета.Параметры;
    //ПараметрыПостроителя.Вставить("ТипЦен", ТипЦен);
    ПараметрыПостроителя.Вставить("ВидДанных", Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение);
        
КонецПроцедуры

Я не правильно сделал?
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #132560 · Ответов: 16 · Просмотров: 9665
 

>  Выгрузка в yml
Murano
Отправлено: 25.09.17, 12:50


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 20.07.17
Пользователь №: 56981


salton @ Сегодня, 13:28 * ,
приятного аппетита
как таковой процедуры нету, выборка совершается в построителе отчета. Тупые вопросы и ошибки из-за нехватки опыта у меня, т.к. с 1С знаком всего 2мес. За это прошу простить меня
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #132558 · Ответов: 16 · Просмотров: 9665
 

>  Выгрузка в yml
Murano
Отправлено: 25.09.17, 12:11


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 20.07.17
Пользователь №: 56981


salton @ Сегодня, 13:08 * , что-то пошло не так




 ! 

Правила: 8
 
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #132556 · Ответов: 16 · Просмотров: 9665
 

>  Выгрузка в yml
Murano
Отправлено: 25.09.17, 12:02


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 20.07.17
Пользователь №: 56981


salton @ Сегодня, 12:32 * ,
{ВнешняяОбработка.ВыгрузкаДанныхПоНоменклатуре.МодульОбъекта(159,4)}: Ожидается ключевое слово 'КонецЕсли' ('EndIf')
<<?>>КонецЦикла; (Проверка: Толстый клиент (обычное приложение))
{ВнешняяОбработка.ВыгрузкаДанныхПоНоменклатуре.МодульОбъекта(162,3)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')
<<?>>КонецЦикла; (Проверка: Толстый клиент (обычное приложение))
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #132554 · Ответов: 16 · Просмотров: 9665
 

>  Выгрузка в yml
Murano
Отправлено: 25.09.17, 10:29


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 20.07.17
Пользователь №: 56981


salton @ Сегодня, 9:18 * ,
Да у меня ошибка какая-то выдает из-за циклов, я уже по всякому пробовал, но ничего не получается..поэтому думаю, мб тут помогут

salton @ Сегодня, 9:18 * ,
Может вы как-то на глаз найдете в чем проблема, а то я уже день не могу найти ошибку
Процедура СохранитьВКаталог(ВыборкаТоваров) Экспорт

    // Проверим существование папки для записи изображений
    Если ЛокальнаяВыгрузка = Ложь Тогда
    Каталог = "C:\1C";
    КонецЕсли;  
    ПутьКИзображениям =Каталог + "\Picture\";
    КоличествоВыгруженныхТоваров = 0;
    ПапкаКатолога = Новый Файл(Каталог);
    Если Не ПапкаКатолога.Существует() Тогда
        СоздатьКаталог(ПутьКИзображениям);
    КонецЕсли;
    ПапкаХранилища = Новый Файл(ПутьКИзображениям);
    // Очищаем каталог перд загрзузкой новых файлов
    Если Не ПапкаХранилища.Существует() Тогда
        СоздатьКаталог(ПутьКИзображениям);
    Иначе
        Попытка
            УдалитьФайлы(ПутьКИзображениям,"*.*");
        Исключение
            Сообщить(ОписаниеОшибки());
        КонецПопытки;
    КонецЕсли;

            
    ЗаписьХМL = Новый ЗаписьXML;

    ЗаписьХМL.ОткрытьФайл(Каталог + "\" + Организация + ".xml");

    // Записать директиву
    ЗаписьХМL.ЗаписатьОбъявлениеXML();
    //ЗаписьХМL.ЗаписатьНачалоЭлемента(Строка("OCTYPE xml_catalog SYSTEM" +" " + "hops.dtd"));
    ЗаписьХМL.ЗаписатьНачалоЭлемента("yml_catalog");
    ЗаписьХМL.ЗаписатьАтрибут("date",Строка(Формат(КонецДня(ТекущаяДата()) - 3539, "ДФ=yyyy-MM-dd")+" "+Формат(КонецДня(ТекущаяДата()) - 3539, "ДФ=ЧЧ")+":"+Формат(КонецДня(ТекущаяДата()) - 3539, "ДФ=мм")));
    ЗаписьХМL.ЗаписатьНачалоЭлемента("shop");
    // начинаем обход результата запроса
    ОбходПоГруппирокам = ОбходРезультатаЗапроса.ПоГруппировкам;
    ВыборкаНоменклатураРодитель = ВыборкаТоваров.Выбрать(ОбходПоГруппирокам, "НоменклатураРодитель");
    //Пока ВыборкаНоменклатураРодитель.Следующий() Цикл    
      
        ЗаписьХМL.ЗаписатьНачалоЭлемента("name");
        //Operation name;
        ЗаписьХМL.ЗаписатьКонецЭлемента();
        
        ЗаписьХМL.ЗаписатьНачалоЭлемента("company");
        ЗаписьХМL.ЗаписатьТекст    (Организация);
        //company name;
        ЗаписьХМL.ЗаписатьКонецЭлемента();
        
        ЗаписьХМL.ЗаписатьНачалоЭлемента("url");
        //url;
        ЗаписьХМL.ЗаписатьКонецЭлемента();
        
        ЗаписьХМL.ЗаписатьНачалоЭлемента("currencies");
        ЗаписьХМL.ЗаписатьТекст (Строка("UAH"));
        ЗаписьХМL.ЗаписатьКонецЭлемента();
        
        ЗаписьХМL.ЗаписатьНачалоЭлемента("categories");
    Пока ВыборкаНоменклатураРодитель.Следующий() Цикл
        ЗаписьХМL.ЗаписатьНачалоЭлемента("category");
        ЗаписьХМL.ЗаписатьТекст(ВыборкаНоменклатура.Наименование);
        ЗаписьХМL.ЗаписатьАтрибут("id",Прав(ВыборкаНоменклатура.Код,7 ));
        ЗаписьХМL.ЗаписатьКонецЭлемента();
     КонецЦикла;
        ЗаписьХМL.ЗаписатьКонецЭлемента();
    
        ЗаписьХМL.ЗаписатьНачалоЭлемента("offers");    
          
     Пока ВыборкаНоменклатураРодитель.Следующий() Цикл
          ЗаписьХМL.ЗаписатьНачалоЭлемента("offer");      
          
     Если ЗначениеЗаполнено(ВыборкаНоменклатура.Код) Тогда
              КоличествоВыгруженныхТоваров = КоличествоВыгруженныхТоваров + 1;
                                               
            ЗаписьХМL.ЗаписатьАтрибут("id",Прав(ВыборкаНоменклатура.Код,7 ));
              Если ВыборкаНоменклатура.Остаток > 0 И НЕ ВыборкаНоменклатура.НоменклатураСсылка.шЗаказная Тогда
            ЗаписьХМL.ЗаписатьАтрибут("available",Строка("в наличии"));
            ИначеЕсли ВыборкаНоменклатура.Остаток >= 0 И ВыборкаНоменклатура.НоменклатураСсылка.шЗаказная Тогда
            ЗаписьХМL.ЗаписатьАтрибут("available",Строка("под заказ"));    
            Иначе
               ЗаписьХМL.ЗаписатьАтрибут("available",Строка("наличие уточняйте"));
            КонецЕсли;
                    
          ЗаписьХМL.ЗаписатьНачалоЭлемента("url");
          ///
          ЗаписьХМL.ЗаписатьКонецЭлемента();
                
          ЗаписьХМL.ЗаписатьНачалоЭлемента("price");
     Если ЗначениеЗаполнено(ВыборкаНоменклатура.Цена) Тогда
          ЗаписьХМL.ЗаписатьТекст(Строка(ВыборкаНоменклатура.Цена));
     КонецЕсли;
          ЗаписьХМL.ЗаписатьКонецЭлемента();
                    
          ЗаписьХМL.ЗаписатьНачалоЭлемента("currencyId");
          ЗаписьХМL.ЗаписатьТекст (Строка("UAH"));
          ЗаписьХМL.ЗаписатьКонецЭлемента();
                    
          ЗаписьХМL.ЗаписатьНачалоЭлемента("measure");
          ЗаписьХМL.ЗаписатьТекст (Строка(ВыборкаНоменклатура.ЕдиницаИзмерения));
          ЗаписьХМL.ЗаписатьКонецЭлемента();

          ЗаписьХМL.ЗаписатьНачалоЭлемента("categoryId");
          ЗаписьХМL.ЗаписатьТекст("id",Прав(ВыборкаНоменклатура.Код,7 ));
          ЗаписьХМL.ЗаписатьКонецЭлемента();
                    
          ЗаписьХМL.ЗаписатьНачалоЭлемента("picture");
          //ЗаписьХМL.ЗаписатьТекст (ВыборкаНоменклатура.НаименованиеПолное);
          ЗаписьХМL.ЗаписатьКонецЭлемента();
                    
          //  ЗДЕСЬ ДОЛЖЕН БЫТЬ   <vendor>Польша</vendor>
          //                      <vendorCode></vendorCode>
                    
          ЗаписьХМL.ЗаписатьНачалоЭлемента("model");
          ЗаписьХМL.ЗаписатьТекст(ВыборкаНоменклатура.Наименование);
          ЗаписьХМL.ЗаписатьКонецЭлемента();
                    
          ЗаписьХМL.ЗаписатьНачалоЭлемента("description");
          ЗаписьХМL.ЗаписатьТекст (ВыборкаНоменклатура.Описание);
          ЗаписьХМL.ЗаписатьКонецЭлемента();
    
      КонецЦикла;
          ЗаписьХМL. ЗаписатьКонецЭлемента(); //Относится к "offer"

     КонецЦикла;            
    
    ЗаписьХМL.ЗаписатьКонецЭлемента(); //Относится к "offers"
    ЗаписьХМL.ЗаписатьКонецЭлемента(); //Относится к элементу "shop"
    ЗаписьХМL.ЗаписатьКонецЭлемента(); //Относится к элементу "yml_catalog"
    ЗаписьХМL.Закрыть();
    Если ЛокальнаяВыгрузка = Ложь Тогда
    ОтправитьФайлНаСервер(КоличествоВыгруженныхТоваров);
    Иначе
    Сообщить("Выгрузка успешно завершилась. Выгружено " + КоличествоВыгруженныхТоваров + " товаров");
    КонецЕсли;

КонецПроцедуры
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #132550 · Ответов: 16 · Просмотров: 9665
 

>  Выгрузка в yml
Murano
Отправлено: 25.09.17, 1:46


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 20.07.17
Пользователь №: 56981


Доброго времени суток. Столкнулся с такой задачей: нужно сделать обработку для выгрузки каталога номенклатуры в формат yml. Нахожу только платные решения, может быть у кого то есть пример или какой-то аналог, который помог бы новичку? Буду очень благодарен
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #132537 · Ответов: 16 · Просмотров: 9665
 

>  Запрос с связью регистра и документа
Murano
Отправлено: 21.09.17, 12:10


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 20.07.17
Пользователь №: 56981


Доброго времени суток. Я новичек в 1С, пытаюсь сделать запрос: Который основывается на регистре сведений "РегистрацияУровнейБуферовЗапасовПриФормированииЗаказов" и с документа "Перемещение товаров". Группирует эти данные так(рис.1)



Не понимаю как так сгрупировать, буду очень благодарен за какую-то помощь


ВЫБРАТЬ
    ПеремещениеТоваров.СкладПолучатель,
    РегистрацияУровнейБуферовЗапасовПриФормированииЗаказов.Номенклатура,
    РегистрацияУровнейБуферовЗапасовПриФормированииЗаказов.Склад,
    РегистрацияУровнейБуферовЗапасовПриФормированииЗаказов.ЕдИзмерения,
    РегистрацияУровнейБуферовЗапасовПриФормированииЗаказов.ДокументЗаказ,
    РегистрацияУровнейБуферовЗапасовПриФормированииЗаказов.КоличествоПоЗаказу,
    РегистрацияУровнейБуферовЗапасовПриФормированииЗаказов.КоличествоПотребности,
    РегистрацияУровнейБуферовЗапасовПриФормированииЗаказов.Отклонение
ИЗ
    РегистрСведений.РегистрацияУровнейБуферовЗапасовПриФормированииЗаказов КАК РегистрацияУровнейБуферовЗапасовПриФормированииЗаказов
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПеремещениеТоваров КАК ПеремещениеТоваров
        ПО РегистрацияУровнейБуферовЗапасовПриФормированииЗаказов.Склад = ПеремещениеТоваров.СкладПолучатель
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #132433 · Ответов: 1 · Просмотров: 1084
 

>  Создание Групповой обработки документов по отдельным реквизитам
Murano
Отправлено: 08.09.17, 16:05


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 20.07.17
Пользователь №: 56981


salton @ Сегодня, 17:02 * ,
благодарю
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #131906 · Ответов: 14 · Просмотров: 3222
 

>  Создание Групповой обработки документов по отдельным реквизитам
Murano
Отправлено: 08.09.17, 16:00


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 20.07.17
Пользователь №: 56981


salton @ Сегодня, 16:51 * ,
у меня в приложении клиенте вообще не запускается этот файл.. только в конфигураторе
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #131904 · Ответов: 14 · Просмотров: 3222
 

>  Создание Групповой обработки документов по отдельным реквизитам
Murano
Отправлено: 08.09.17, 15:45


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 20.07.17
Пользователь №: 56981


logist @ Сегодня, 16:37 * ,
да. Я с трудом понимаю как это можно реализовать..
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #131900 · Ответов: 14 · Просмотров: 3222
 

>  Создание Групповой обработки документов по отдельным реквизитам
Murano
Отправлено: 08.09.17, 14:12


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 20.07.17
Пользователь №: 56981


Vidocq05 @ Сегодня, 15:06 * ,
Только мне бы это сделать отдельной обработкой. Это возможно?
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #131897 · Ответов: 14 · Просмотров: 3222
 

>  Создание Групповой обработки документов по отдельным реквизитам
Murano
Отправлено: 08.09.17, 13:03


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 20.07.17
Пользователь №: 56981


Vidocq05 @ Сегодня, 12:19 * ,
Обработка должна обрабатывать реквизиты указанных типов документов системы 1С:
- Реализация товаров и услуг;
- Возврат товаров от покупателей;
...
Реквизиты документов доступны для изменения:
- «ошибочный»;
- «Отсутствует оригинал»;
- «Проверено бухгалтерией»;
- «Сдано в бухгалтерию»;
- «Дата сдан в бухгалтерию»;
- «Комментарий».
Реквизит «Дата сдан в бухгалтерию» заполняется автоматически текущей датой и временем в момент смены реквизита «Сдано в бухгалтерию» по признаку «Истина».
табличная часть обработки должна заполняться на основании комбинации отборов: по типу документа, календарном промежутке (дата документа от-по) или по списку документов.
Блок отборов формируется на основании построителя отборов Основного запроса обработки.


cos12 @ Сегодня, 13:35 * ,
8.3 "Управление торговым предприятием для Украины" редакция 1.2
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #131882 · Ответов: 14 · Просмотров: 3222
 

>  Создание Групповой обработки документов по отдельным реквизитам
Murano
Отправлено: 08.09.17, 9:35


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 20.07.17
Пользователь №: 56981


Vidocq05 @ Сегодня, 8:55 * ,
Ну она же мне не подходит. Мне нужно создать возможность группового изменения документа по обработке "Установить реквизиты" для отображения однотипного состояния документа
Или я что то не правильно понимаю?
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #131864 · Ответов: 14 · Просмотров: 3222
 

>  Создание Групповой обработки документов по отдельным реквизитам
Murano
Отправлено: 07.09.17, 23:13


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 20.07.17
Пользователь №: 56981


Доброго времени суток. Хотел бы узнать, как сделать "Групповую обработку документов по отдельных реквизитах" ?
Версия 8.3


 ! 

Правила: 4
 
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #131847 · Ответов: 14 · Просмотров: 3222
 

2 страниц V   1 2 >

Новые сообщения  Открытая тема (есть новые ответы)
Опрос  Опрос (есть новые голоса)
Нет новых сообщений  Открытая тема (нет новых ответов)
Нет новых голосов  Опрос (нет новых голосов)
Популярная тема  Горячая тема (есть новые ответы)
Закрыта  Закрытая тема
Нет новых  Горячая тема (нет новых ответов) Перемещена  Тема перемещена
 

RSS Текстовая версия Сейчас: 29.03.24, 7:38
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!