Александр Денисюк пишет: Сейчас только так. 1С получает только тогда номер на сайте, когда приходит заказ с сайта.
Ладно. А можно хотя бы сделать что бы заказ получив номер (после загрузки) - в БУСе отмечался как "измен" и сразу же выгружался в 1С? А со стороны 1С после отправки заказов - выполнять еще один цикл запроса заказов. И таким образом получить номера заказов "почти за один прход".
При обмене заказами сначала идет: загрузка заказов из сайта, а потом выгрузка заказов на сайт. Т.е. после выгрузки заказов на сайт, загрузка заказов с сайта, в этом обмене, уже невозможна. Можно, конечно, допилить и БУС и модуль обмена 1С, чтобы работало по вашему, но в типовом обмене такого варианта обмена заказами - нет.
Версия 1С УТ 11.1.6.24 Версия модуля обмена 4.0.2.3 Версия БУС 14.5.3
Вопрос по выгрузке заказов и контрагентов с сайта в 1С (ред. 11 УТ). Мы настроили при помощи модуля Битрикса обмен с сайтом. В 1С уже есть клиенты, которые заведены до настройки обмена с сайтом (большая часть клиентов создана в предыдущей редакции УТ 10.3 и выгружена с ИНН/КПП в базу УТ ред. 11). В модуле обмена настроена идентификация контрагентов по ИНН. На сайте оформляются заказы от юр лиц, имеющих ИНН и КПП такие же, как у существующих в 1С клиентов (контрагентов). При этом при загрузке заказов в 1С создаются новые клиенты (контрагенты) с данными с сайта. То есть идентификация по ИНН не происходит. Заказы оформляются не на существующих клиентов, а на вновь создаваемых по данным с сайта. Поясните, как это должно работать.
Необходимо ли вести в 1С отдельный учет клиентов и контрагентов? Как должны определяться в заказах, загруженных с сайта данные по клиенту и контрагенту, если в базе 1С такой клиент (подразумевается с такими же ИНН и КПП) или контрагент уже заведен ранее? Проверка уникальности ведется только по ИНН или по связке ИНН+КПП?
Поясните, пожалуйста, положения, которые указаны в описании модуля на странице http://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=42&LESSON_ID=6326&LESSON_PATH=3912.4912.6315.6317.6319.6326 Есть такие строки «В поле Способ идентификации контрагентов указывается, как будут искаться контрагенты по базе или, если контрагент не будет найден, по уникальному идентификатору(?) или коду с сайта(?). Поиск контрагентов может быть или по наименованию, или по ИНН+КПП.» Первое предложение совсем непонятно. Что значит, что контрагент не будет найден по уникальному идентификатору или коду с сайта? Мы же ищем по ИНН, у нас это указано в настройках модуля обмена.
Что такое «В поле Группа для новых контрагентов указывается группа контрагентов для новых контрагентов, созданных модулем обмена с этой настройкой обмена.»? Можете объяснить более подробно, что это значит Группа контрагентов? Что в 1С является группой контрагентов, как она оформляется и по какому принципу наполняется контрагентами? Для ЮЛ механизм схожий с оформлением физических лиц? То есть необходимо создать для юридических лиц обобщенного клиента и в него добавлять всех поступающих с сайта контрагентов? Если так, то что делать с этими контрагентами далее и как их привязывать к существующим в базе актуальным клиентам (контрагентам)?
Также вопрос по «При отмеченной опции Не редактировать контрагентов пришедших с сайта информация о контрагентах обновляться в 1С не будет.». Что это значит? Если, скажем, с сайта оформлено в 1С одно название контрагента. Опция включена. Покупатель на сайте изменил название ЮЛ (например добавил ЗАО, ООО и пр.) или изменил адрес, телефон). Изменение с очередным заказом не будет внесено в 1С? А если опцию выключить, то все изменения по данным контрагента на сайте будут автоматически вноситься в 1С? См. ниже используемые настройки.
Не могу перенести торговые предложения с сайта в 1С. Товары импортируются, а торговый каталог никак не хочет. В чем может быть дело? Настройки БУС сделал как в вебинаре.
Виктор Третьяков пишет: Не могу перенести торговые предложения с сайта в 1С. Товары импортируются, а торговый каталог никак не хочет. В чем может быть дело? Настройки БУС сделал как в вебинаре.
Виктор, тоже интересно узнать ответ на данный вопрос
1. А предусмотрена ли возможность переноса комментариев пользователя заказа в 1С УТ? Потому, что у меня комментарии не переносятся. 2. Если накатываешь новый модуль обмена, старый будет работать?
Вопрос по выгрузке заказов и контрагентов с сайта в 1С (ред. 11 УТ). Мы настроили при помощи модуля Битрикса обмен с сайтом. В 1С уже есть клиенты, которые заведены до настройки обмена с сайтом (большая часть клиентов создана в предыдущей редакции УТ 10.3 и выгружена с ИНН/КПП в базу УТ ред. 11). В модуле обмена настроена идентификация контрагентов по ИНН. На сайте оформляются заказы от юр лиц, имеющих ИНН и КПП такие же, как у существующих в 1С клиентов (контрагентов). При этом при загрузке заказов в 1С создаются новые клиенты (контрагенты) с данными с сайта. То есть идентификация по ИНН не происходит. Заказы оформляются не на существующих клиентов, а на вновь создаваемых по данным с сайта. Поясните, как это должно работать.
Напишите по этому поводу в техподдержку. Поиск по ИНН должен работать.
Цитата
Необходимо ли вести в 1С отдельный учет клиентов и контрагентов? Как должны определяться в заказах, загруженных с сайта данные по клиенту и контрагенту, если в базе 1С такой клиент (подразумевается с такими же ИНН и КПП) или контрагент уже заведен ранее? Проверка уникальности ведется только по ИНН или по связке ИНН+КПП?
До проверки уникальности идет проверка по коду битрикс. Если в заказе он совпадает с кодом какого то контрагента - то подставляется этот контрагент. А если не найден, то ищется по ИНН или наименованию(зависит от настройки) Ищется по ИНН, а не по связке ИНН + КПП
Цитата
Также вопрос по «При отмеченной опции Не редактировать контрагентов пришедших с сайта информация о контрагентах обновляться в 1С не будет.». Что это значит? Если, скажем, с сайта оформлено в 1С одно название контрагента. Опция включена. Покупатель на сайте изменил название ЮЛ (например добавил ЗАО, ООО и пр.) или изменил адрес, телефон). Изменение с очередным заказом не будет внесено в 1С? А если опцию выключить, то все изменения по данным контрагента на сайте будут автоматически вноситься в 1С? См. ниже используемые настройки.
Да, именно для этого этот флажок и нужен. Если выключить, то должен обновиться, если конечно же, он был обновлен на сайте.
Цитата
Не могу перенести торговые предложения с сайта в 1С. Товары импортируются, а торговый каталог никак не хочет. В чем может быть дело? Настройки БУС сделал как в вебинаре.
Наверн в настройках обмена с 1С на стороне БУС не установлен флажок. чтобы отдельно создавался инфоблок предложений. Или в настройках обмена 1С что то не то.
Артем Новоселов пишет: 1. А предусмотрена ли возможность переноса комментариев пользователя заказа в 1С УТ? Потому, что у меня комментарии не переносятся. 2. Если накатываешь новый модуль обмена, старый будет работать?
1. Только если в дополнительные сведения заказа. В сам комментарий заказа попадает служебный комментарий 2. Да будет, но сайт принимать данные со старого обмена не будет. Нужно будет выполнить кой какие скрипты.
Цитата Наверн в настройках обмена с 1С на стороне БУС не установлен флажок. чтобы отдельно создавался инфоблок предложений. Или в настройках обмена 1С что то не то.
Флажок стоит. Для переноса использую помощник, там настроек-то никаких нет. Может торговые предложения отдельной операцией переносить?
Если у вас конфигурация не на управляемых формах, но платформа 1С 8.3 - желательно не ставить режим совместимости "Не использовать". Лучше указывать "8.2.16". Некоторые релизы конфигураций плохо работают без режима совместимости.
Выставил режим совместимости 8.2.16. При попытке объединить конфигурации вылезает ошибка: ОпределяемыйТип.РаспоряжениеНаПоступление: Использование определяемых типов в режиме совместимости 8.3.2 и ниже недопустимо.
Виктор Третьяков пишет: Выставил режим совместимости 8.2.16. При попытке объединить конфигурации вылезает ошибка: ОпределяемыйТип.РаспоряжениеНаПоступление: Использование определяемых типов в режиме совместимости 8.3.2 и ниже недопустимо.
Этот режим нужно ставить для конфигураций на неуправляемых форм. Т.е. УТ 10.3, КА и УПП.
В ходе загрузки документов с сайта, в случае если обнаруживается какое-либо несоответствие (не указан номер или не заполнена дата или же не та хоз.операция) происходит пропуск документа и переход к следующему документу в списке. А по окончанию загрузки на сайт отправляется информация об успешной загрузке документов, что приводит к пометке документов как успешно-выгруженные и сайт не выгружает их в 1С пока заказ не будет изменен повторно.
Вопрос - разумно ли это считать загрузку успешной если в процессе загрузки происходили ошибки. Т.е. оператор магазина - отправил заказы в доставку, и думает что заказ попал в 1С. А в реальности заказ не попал никуда...и в 1С об этом нет ошибок (только в логе информация)
Василий Мазурок пишет: В ходе загрузки документов с сайта, в случае если обнаруживается какое-либо несоответствие (не указан номер или не заполнена дата или же не та хоз.операция) происходит пропуск документа и переход к следующему документу в списке. А по окончанию загрузки на сайт отправляется информация об успешной загрузке документов, что приводит к пометке документов как успешно-выгруженные и сайт не выгружает их в 1С пока заказ не будет изменен повторно.
Вопрос - разумно ли это считать загрузку успешной если в процессе загрузки происходили ошибки. Т.е. оператор магазина - отправил заказы в доставку, и думает что заказ попал в 1С. А в реальности заказ не попал никуда...и в 1С об этом нет ошибок (только в логе информация)
Если загрузка происходит так как сейчас, то:
1. Если заказ косячный и не можетсразу провестись в 1С(если стоит такой режим), то он попытается записаться, а записывается документ даже с косячными данными(за искл. наиболее критичных данных) 2. Есть лог файл
Если загрузка происходит по другой схеме: Появился косячный заказ из за которого положительный ответ на сайт не отправляется. В этом случае все заказы пакета документов будут всегда выгружаться, вне зависимости нормально они загружены, или нет. А это нагрузка на сервер 1С и сайта.
Александр Денисюк пишет: В этом случае все заказы пакета документов будут всегда выгружаться, вне зависимости нормально они загружены, или нет. А это нагрузка на сервер 1С и сайта
Может идеальным вариантом был бы компромисс между первым и вторым вариантом. Когда косячные документы в 1С не загружаются, однако на сайт отдается информация о том что конкретные документы не загружены.?
Для этого необходимо несколько переделать логику ответа 1С на сайт. Но зато на сайте появилась бы возможность отметить когда и как загрузился в 1С тот или иной заказ. "Зеленая лампочка" - документ в 1С загружен. "Желтая лампочка" - документ ожидает загрузки. "Красная лапочка" - документ не загрузился в 1С из-за ошибки. Да еще и ошибку из 1С показывать.
И тогда и менеджер сайта будет в курсе что у него что-то не выгрузилось в 1С. И нагрузки на сайт не будет. Не будет происходить потери заказов из-за молчаливого поведения процедуры обмена.
Александр Денисюк пишет: В этом случае все заказы пакета документов будут всегда выгружаться, вне зависимости нормально они загружены, или нет. А это нагрузка на сервер 1С и сайта
Может идеальным вариантом был бы компромисс между первым и вторым вариантом. Когда косячные документы в 1С не загружаются, однако на сайт отдается информация о том что конкретные документы не загружены.?
Для этого необходимо несколько переделать логику ответа 1С на сайт. Но зато на сайте появилась бы возможность отметить когда и как загрузился в 1С тот или иной заказ. "Зеленая лампочка" - документ в 1С загружен. "Желтая лампочка" - документ ожидает загрузки. "Красная лапочка" - документ не загрузился в 1С из-за ошибки. Да еще и ошибку из 1С показывать.
И тогда и менеджер сайта будет в курсе что у него что-то не выгрузилось в 1С. И нагрузки на сайт не будет. Не будет происходить потери заказов из-за молчаливого поведения процедуры обмена.
Здравствуйте, Александр. У меня все еще проблемы с импортом товаров с сайта с использованием помощника - не создаются характеристики. Если я правильно понимаю, то характеристики создаются в процедуре СоздатьХарактеристикиНоменклатуры(), куда передается ИдНоменклатуры. В моем случае передается внешний код элемента - товара. Дальше, если я опять же правильно понимаю, Вы ищете это значение в мСтруктураДанных.ТаблицаПредложений.Но в этой таблице нет таких значений. В ней есть колонка Ид, в которой хранятся внешние коды самих элементов, то есть торговых предложений. Есть колонка ИдХарактеристики, но там все пусто. Скажите пожалуйста, а где должна быть привязка Характеристик к Товарам? (Я с 1С раньше не работал, так что плохо разбираюсь.)
Добрый день, у меня вопрос, а если способ выгружать только те характеристики которые нужны у товара? Т.е. что бы они не все попадали, Если характеристик много, выгружалась только одна. И в свойствах товара, на сайте была только одна эта характеристика. .
В исходном коде модуля Б_ПроцедурыОбменаССайтом есть процедура "СоздатьОбновитьДокументы". В которой есть текст запроса, общая суть которого выбрать все документы из базы у которых заполнено поле Б_Идентификатор и записать их во временную таблицу
Это конечно не мое дело, указывать Вам как писать программы... но... с точки зрения логики - насколько разумно выбирать ВСЕ данные за ВСЕ периоды, сохраненные в базе, ради того, что бы проверить существование одного, двух, ну максимум десяти документов
Если я правильно понимаю идеологию (все выводы делаю на основании взаимодействия с собственным сайтом): - частота обращений к сайту для запроса новых заказов у большинства довольно высокая (у меня например 5 минут); - реал-тайм режим подразумевает что заказы будут "падать" в 1С сразу после появления их на сайте, а это значит 1 документ в пактее; - даже без использования реал-тайм режима, при частых опросах сайта - количество заказов в одном пакете будет небольшим,около 10-15 (в среднем), зачастую это будет 1-2 заказа;
Теперь вот к логике - насколько логично каждый раз для проверки наличия в базе 1-го заказа - заставлять сервер выбирать заказы за несколько лет работы и осуществлять операции по записи нескольких сотен тысяч записей во временную таблицу.
На мой взгляд, быстрее было бы, отобрать все идентификаторы и передать их как массив идентификаторо в запрос, ограничив тем самым результат выборки, уменьшив время работы запроса и сократив количество операций чтения/записи. А если постараться можно вообще обойтись только операциями чтения.
Все вышесказанное сказано сугубо как личное мнение, и если я чего недосмотрел - прошу меня простить и просветить ....
Василий Мазурок пишет: Теперь вот к логике - насколько логично каждый раз для проверки наличия в базе 1-го заказа - заставлять сервер выбирать заказы за несколько лет работы и осуществлять операции по записи нескольких сотен тысяч записей во временную таблицу.
На мой взгляд, быстрее было бы, отобрать все идентификаторы и передать их как массив идентификаторо в запрос, ограничив тем самым результат выборки, уменьшив время работы запроса и сократив количество операций чтения/записи. А если постараться можно вообще обойтись только операциями чтения.
Все вышесказанное сказано сугубо как личное мнение, и если я чего недосмотрел - прошу меня простить и просветить ....
Все идентификаторы документов хранятся в общем реквизите Б_Идентификатор. Т.е. чтобы получить все эти идентификаторы - придется перебирать все эти документы. А хранить их постоянно в течении сеанса где то - не очень хорошо это, да и не всегда полезно.
Я думаю, что прикручу к этому запросу условие по точке актуальности из настройки обмена. Она как раз нужна, чтобы отсеивать старые документы. А может и нет, т.к. он все равно эти документы прочитает.
Александр Денисюк пишет: Все идентификаторы документов хранятся в общем реквизите Б_Идентификатор.
Я не совсем это имел ввиду. К процедуре "СоздатьОбновитьДокументы" обращение происходит уже когда XML полученный с сайта - разобран. Т.е. у нас уже имеются все необходимые нам Идентификаторы документов.
Т.е. имея идентификаторы пришедших с сайта документов можно запросить у базы 1С именно их. И для этого нет необходимости что либо перебирать.
И результат запроса или будет содержать документ с таким идентификатором или же не будет - если не будет - значит документ новый. Тогда и создаем новый заказ. Если же содержит - значит обновляем документ.
Если в двух словах. Запросом выбираем документы и получаем ТЗ с полями "идентификатор" и "Документ". Далее проходим циклом по ТЗ загруженных с сайта документов и ищем в ТЗ полученной запросом. Если находим берем документ и работаем - не находим - создаем новый документ. А для оптимизации можем добавить созданный документ в эту же таблицу - что бы избежать обращений к БД при поиске этого заказа в следующих итерациях цикла..... Например при создании ПКО что бы не искать вновьсозданный документ в БАЗЕ - берем его из таблицы - предварительно его туда добавив.
Прошу извинить за сумбурность... но более детально - проще уже код написать.
Александр Денисюк пишет: думаю, что прикручу к этому запросу условие по точке актуальности из настройки обмена
А дата эта... она ведь тоже условна... Установив его сегодняшним днем - мы будем выбирать только один день... А через год (если не менять дату в настройках обмена - а ведь так оно и есть, работает никто и не трогает) - будем уже выбирать объемы годовой работы сайта.
Василий Мазурок пишет: Если в двух словах. Запросом выбираем документы и получаем ТЗ с полями "идентификатор" и "Документ". Далее проходим циклом по ТЗ загруженных с сайта документов и ищем в ТЗ полученной запросом. Если находим берем документ и работаем - не находим - создаем новый документ. А для оптимизации можем добавить созданный документ в эту же таблицу - что бы избежать обращений к БД при поиске этого заказа в следующих итерациях цикла..... Например при создании ПКО что бы не искать вновьсозданный документ в БАЗЕ - берем его из таблицы - предварительно его туда добавив.
Хорошо. Я в следующей версии модуля обмена сделаю, чтобы с запроса искались только те документы, ид которых в XML.
Т.е. в запросе вместо: <Документ>.Б_Идентификатор <> """" Будет: <Документ>.Б_Идентификатор В (&СписокИдДокументов)
У меня в мСтруктураДанных.ТаблицаПредложений поле Ид хранит XML_ID текущего предложения. ИдНоменклатуры хранится, насколько я понимаю, в другом свойсте. А тогда метод НайтиСтроки() сможет найти то что от него требуется?
Виктор Третьяков пишет: У меня вопрос по этой строке: (процедура СоздатьХарактеристикиНоменклатуры(Номенклатура, ИдНоменклатуры, Обработано, пНайдено, Создано))
У меня в мСтруктураДанных.ТаблицаПредложений поле Ид хранит XML_ID текущего предложения. ИдНоменклатуры хранится, насколько я понимаю, в другом свойсте. А тогда метод НайтиСтроки() сможет найти то что от него требуется?
Если не изменяет память, то там хранится как ид товара, так и ид характеристики, т.к. нужно разбить объединенный ид на 2. Сейчас обработка загрузки товаров кардинально переделывается.