Здравствуйте. Спойлеров здесь я не обнаружил, так что просто немалое количество текста без группировки ...
Предисловие ... Я компьютерщик/сисадмин/программист в одной конторе. С недавних пор мне на голову упало всё то, что касается 1С. Собственно, саму 1С я увидел "только вчера", но мне к такому не привыкать (так у меня во многом).
Моя задача: интеграция сайта с 1С. Мой арсенал: - 1С:Предприятие 8.3 (8.3.10.2299), конфигурация Альфа-Авто: Автосалон+Автосервис+Автозапчасти ПРОФ, редакция 5.1 (5.1.05.08); - сервер (VPS) с сайтом автомобильной тематики. Как я вижу результат выполнения задачи: из 1С выгружается прайс-лист (по расписанию, или при изменении данных), загружается на FTP, а север уже сам выполняет обработку файла (с пинка, или с определённой периодичностью),
Что я имею на данный момент ... Я не обнаружил ни штатных средств, ни внешних обработок в интернете (подходящих мне), которые позволят выполнять выгрузку прайс-листов по номенклатуре (или по чему либо вообще). Я нашёл только ручной "экспорт", и только по одной папке номенклатуры. Экспорт в кавычках - потому что это "Печать этикеток и ценников" (штатный вывод в документ я не обнаружил вовсе); я согласен что это можно сделать на виртуальный принтер с выводом в документ, но мало того, что это уже само по себе уродство без перспектив вменяемой автоматизации, так ещё и одна папка номенклатуры.
На счёт одной папки - это в принципе можно исправить (пере)группировкой ... Но насяльника не хочет, хотя подвязок никаких нет (пока что).
Что я вижу дальше ... Разработка собственной внешней обработки для формирования и выгрузки прайс-листа. Я добрался до конфигуратора, создал новую внешнюю обработку, прилепил форму, и вот смотрю на эту форму как баран на зелёные ворота, вижу в модуле объекта, что нужно писать код.
На данном этапе я уже наблюдаю общее сходство с обычным (не 1С) программированием - те же формы, кнопочки, обработчики =)
Собственно код я писать умею, но в данном случае я не знаю, что писать. Я понимаю, что мои запросы ушли далеко от уровня "Hello world", но кому сейчас легко, я то уже работаю, а не на парах сижу ...
Чего мне не хватает ... Справочной литературы по типу MSDN - какие функции, свойства, параметры функций - что они означают. Что касается синтаксиса - я не думаю, что это большая проблема (хотя хрен его знает). Например функция
Если полагаться только на название - то это та функция, которая должна мне вернуть нечто, касающееся номенклатуры, по которой нужно будет дополнительно откуда то брать ценники (кстати откуда ?). Если так и есть - то что мне нужно передавать в качестве параметров ? Мне нужно выгрузить все позиции из папки "Автохимия" например. И дальше - откуда и куда грузить цены ? В общем, тут много вопросов, и мне нужно их решить.
Это только формирование прайса. Следующий этап - выгрузка в файл (CSV) на FTP.
Группа: Местный
Сообщений: 306
Спасибо сказали: 75 раз
Рейтинг: 0
berkut_0 @ Сегодня, 12:01
, Посмотрите Выгрузка в формате CommerceML, там вроде есть выгрузка Прайса, по синтаксису в конфигураторе есть Синтаксис помощник, там всё есть, если есть хоть какое то понимание программирования то в принципе поймёте.
Не знаю, штатно или интегрировали, но я видел в Альфе обработку "Выгрузка товаров на сайт в формате CommerceML". И она работала. Т.е. если даже ее нет в типовой Альфе, проще ее туда прикрутить чем писать с нуля.
Мне двухстороннее и не надо ... Я вообще этого не понимаю - управление должно происходить там, где это более важно, а всё остальное подчиняется. Учёт всех товаров выполняется в централизованой базе, в данном случае - в 1С. Значит и оттуда должно быть управление.
Ну или тоже самое если представить, что у автомобиля будет два руля - первый слева, второй справа ... Аналогия конечно неправильная, так как критический уровень взаимных помех (и тем не менее, такая опция была бы полезной в отельных, столь же критических ситуациях). Но суть та же.
Я выделил подзадачи, которые вполне себе реализуемы.
Цитата(berkut_0 @ 04.10.17, 12:01)
из 1С выгружается прайс-лист (по расписанию, или при изменении данных), загружается на FTP, а север уже сам выполняет обработку файла (с пинка, или с определённой периодичностью)
Интеграция с сайтом (особенно в две стороны) - гемор, который 1С не могут нормально разрулить даже со своим битриксом.
Сформировать и прочитать файл - вроде как элементарные вещи. Да, типовые вещи в некоторых случаях могут не работать, надо допиливать.
Цитата(berkut_0 @ 04.10.17, 23:03)
Учёт всех товаров выполняется в централизованой базе, в данном случае - в 1С. Значит и оттуда должно быть управление.
Когда сайт выходит в топ и на сайте оформляется более 50 заказов в день встает вопрос об импорте заказов в 1С (вместе емейлами и телефонами заказчиков)
В целом, это тоже решаемо ... Я вижу следующие подзадачи: 1 - на сайте по необходимости формируются файлы импорта в 1С; 2 - раз в час/день/месяц/год - обработка заходит в указанное место на FTP, и выполняет необходимый импорт по необходимым базам (что то типа расчётные счета/чеки/выходные накладные). В качестве бонуса и от скучной жизни - можно выполнять перепроверку по остаткам-заказам, и пересчитывать остатки; зато это будет автоматически, и всё в той же 1С. Но для этого нужна более серьёзная обработка в самой 1С.
Цитата(Егор Динин @ 05.10.17, 10:11)
вместе емейлами и телефонами заказчиков
А это зачем ? Оно всё есть на сайте, и в 1С оно попросту ни к чему.
А зачем изобретать велосипед с нуля, если в Вашей конфигурации есть обработка выгрузки?
Ну как бы у меня нет экспорта в прайс ... А так - сделать всё одной кнопкой.
Мне на другом форуме помогли чутка (дали код формирования прайса, и выгрузки файла на FTP), так что я продолжаю пытаться разобраться ... Сейчас я пытаюсь выгрузить прайс по номенклатуре; отковырял код обработки "Печать этикеток и ценников", там собственно есть формирование запроса и подгрузка того, что мне нужно. Только там заполнение табличной части, а я собираюсь сразу в файл =). Но вот столкнулся с такой незадачей: такой же запрос возвращает 0 строк. В обработчике-доноре группа выбирается посредством реквизита, а в моём - строковая константа. При отладке обработчика-донора название группы в переменной в отладчике показано без кавычек
В обработчике-доноре группа выбирается посредством реквизита, а в моём - строковая константа. При отладке обработчика-донора название группы в переменной в отладчике показано без кавычек (скрин "Отладка_1.png"); а при отладке моей обработки - с кавычками (скрин "Отладка_2.png"). Собственно, подскажите пожалста, как быть ?
В первом случае - ссылка на справочник Номенклатура. Во втором Вы подсовываете строку. Попробуйте вместо этого получить ссылку на объект ТекГруппа = СпрНоменклатура.НайтиПоНаименованию("Аксессуары",Истина,,); Или же на форме обработки создайте поле ввода с источником = СпрНоменклатура и выбирайте группу. А дальше в запросе перебирайте номенклатуру в иерархии...
Вопрос почти в тему: как правильно распознавать объекты, которые возвращаются из функций ? Например:
Функция СоздатьЗапрос(БлаБлаБла) Запрос = Новый Запрос(БлаБлаБла); // какие нибудь дополнительные параметры запроса Возврат Запрос; КонецФункции
Процедура КакаяНибудьОбработка() Запрос = СоздатьЗапрос(Параметр); // а дальше переменная Запрос не имеет выпадающего списка полей и методов, как это изначально задумывается, а хочется работать как с запросом =) КонецПроцедуры
Я так понимаю, это из-за отсутствия типизации переменных. Здесь есть приведение переменной к какому либо типу данных ? Я видел "КАК", попробовал - не получилось.
Вопрос почти в тему: как правильно распознавать объекты, которые возвращаются из функций ?
А зачем? Я так понимаю распознавать - вы имеете ввиду узнать какой тип переданного значения? Зачем это нужно, если мы и так знаем, что хотим передать или что получим от функции...
Чтобы привести к какому нибудь-типу... к примеру меняем тип поля ввода на форме:
Массив = Новый Массив; Массив.Добавить(Тип("СправочникСсылка.Номенклатура")); ОписаниеТиповС = Новый ОписаниеТипов(Массив,,); ЭлементыФормы.НашеПоле.ТипЗначения = ОписаниеТиповС;
Цитата(berkut_0 @ 05.10.17, 15:44)
Функция СоздатьЗапрос(БлаБлаБла) Запрос = Новый Запрос(БлаБлаБла); // какие нибудь дополнительные параметры запроса Возврат Запрос; КонецФункции
если сильно хочется то что-то типа так:
Функция СоздатьЗапрос(БлаБлаБла) Запрос = Новый Запрос; // какие нибудь дополнительные параметры запроса ВозвращаемоеЗначение = Запрос.Выполнить().Выгрузить() Возврат ВозвращаемоеЗначение; КонецФункции
и тут я уже знаю что функция вернет мне результат запроса выгруженный в ВозвращаемоеЗначение. Не надо гадать на гуще какой же объект мне вернула функция.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!