31.08.20 — 12:20
Всем привет.
Помогите советом.
«нельзя изменять поле содержащее объект данных формы»
Вот такая ошибка появляется при попытке создать Номенклатуру методом Скопировать.
Это какой то косяк? Или так должно быть?
1 — 31.08.20 — 12:23
(0) на клиенте поди делаешь, да?
2 — 31.08.20 — 12:24
(1) Да
3 — 31.08.20 — 12:25
11.4.8.92 — не наблюдается.
Значит у тебя поправленная конфигурация
4 — 31.08.20 — 12:26
(3) 11.4.11.88 — в Справочнике Номенклатура доработок нету
5 — 31.08.20 — 12:30
(2) ну так то, создавать новые объекты бд можно только на сервере, Перенеси свой код в серверную процу &НаСервере и наслаждайся
6 — 31.08.20 — 12:38
(5) У меня нет своего кода, по крайней мере в справочнике Номенклатура.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
вся процедура — Типовая.
7 — 31.08.20 — 12:38
(1) Не так поняла вопрос…
8 — 31.08.20 — 12:42
ок.. по шагам тогда, как ты делаешь это и где ?
>>при попытке создать Номенклатуру методом Скопировать
9 — 31.08.20 — 12:45
(8) в режие пользователя:
1. Выбираю номенклатуру из списка — потом либо F9, либо через кликания мышкой на «Скопировать».
2. В карточке номенклатура — Еше — Скопировать.
10 — 31.08.20 — 12:46
(9) так и точное место ошибки указывает на какой код ?
11 — 31.08.20 — 12:49
(10) Отладкой не искала… пока только тестирую с другими справочниками, Валюты и пользователи — все работает.
Может дело в прикрепляемом файле, фото номенклатуры?
12 — 31.08.20 — 12:53
Отладкой ругнулся в процедуре
&НаСервере
Процедура ЗаполнитьПоПараметрам()
а точнее
ЗаполнитьЗначенияСвойств(Объект, ИсточникКопирования, , «ГруппаДоступа, ФайлКартинки, ФайлОписанияДляСайта,
|ДополнительныеРеквизиты, ДрагоценныеМатериалы, Код, ПометкаУдаления»);
13 — 31.08.20 — 13:24
Обновил до 11.4.12.81
Опять не наблюдается.
14 — 31.08.20 — 13:26
(0) У коллег такое тоже наблюдается?
15 — 31.08.20 — 13:34
(14) У меня нет коллег.
16 — 31.08.20 — 13:36
(15) Хм. А если базу скопировать, такое тоже наблюдается?
17 — 31.08.20 — 13:37
После того как закоментировала
ЗаполнитьЗначенияСвойств(Объект, ИсточникКопирования, , «ГруппаДоступа, ФайлКартинки, ФайлОписанияДляСайта,
|ДополнительныеРеквизиты, ДрагоценныеМатериалы, Код, ПометкаУдаления»);
Все заработало
18 — 31.08.20 — 13:39
(16) Да, у меня куча бекапов и на многих — одно и то же
19 — 31.08.20 — 13:45
(17) Можно ли считать, что это правильное решение задачи, в синтакспомощнике почитала про ЗаполнитьЗначенияСвойст — ничего не поняла.
20 — 31.08.20 — 13:52
(19) Если исходить из того, что нужно просто скопировать, то правильное решение.
А если исходить, что все-таки не все нужно копировать, то не очень.
21 — 31.08.20 — 13:56
(19) Подскажи а ты расширения конфигурации не используешь?
22 — 31.08.20 — 13:57
У меня такое было когда я в расширении добавил реквизит номенклатуры.
23 — 31.08.20 — 13:58
(21) Расширения есть, но работаем с основной.
и да… Номенклатура есть в одном из них…
24 — 31.08.20 — 14:00
&После(«ПриЗаписи»)
Процедура Б24_Синхр_ПриЗаписи(Отказ)
Б24_Синхр_РегистрацияИзмененийВызовСервера.ЗарегистрироватьИзменения(ЭтотОбъект);
КонецПроцедуры
Это единственное, что есть в модулях.
Юлианна_Н
25 — 31.08.20 — 14:12
В общем… вопрос решен, более правильным путем (мне так кажется). Сразу прошу особо не пинать, я не виновата, меня подставили…
В «типовой» Номенклатуре, реально были доработки, добавлена новая ТЧ
Она, ТЧ, мешала…
решение, которое смогла придумать, это поставить ее в исключения при заполнении свойств, итог — работает, и строчка не закоментирована.
Спасибо вам всем, с вашей помощью думать легче ))
Невозможно добавить новый элемент в справочник Номенклатура. Код не уникален
Автор ПростоАлександр, 11 янв 2011, 12:29
0 Пользователей и 1 гость просматривают эту тему.
Здравствуйте. Такая проблема: при добавлении нового элемента в справочник Номенклатура выскакивает ошибка:
Ошибка при вызове метода контекста (Записать): Код не уникален!
Такая ошибка возникает, когда добавляешь вид номенклатуры товар, если же вид номенклатуры услуги, то нормально добавляет. Кто-нибудь сталкивался с такой ошибкой?
А вопрос? Код в новом элементе какой должен быть?(можно в отладчике посмотреть). Какой у вас максимальный код?
Проблема в том, что когда в номенклатуре создаешь новый элемент для него необходимо задать базовую единицу измерения. А на основе нее выбирается единица хранения остатков из справочника ЕдиницыИзмерения, который подчинен справочнику Номенклатура. Так вот при записи выполняется такой код:
ВыборкаЕдиниц = Справочники.ЕдиницыИзмерения.Выбрать(, Ссылка);
Если ВыборкаЕдиниц.Следующий() Тогда
НайденнаяЕдиница = ВыборкаЕдиниц.Ссылка;
Иначе
НайденнаяЕдиницаОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
НайденнаяЕдиницаОбъект.Наименование = СокрЛП(БазоваяЕдиницаИзмерения);
НайденнаяЕдиницаОбъект.ЕдиницаПоКлассификатору = БазоваяЕдиницаИзмерения;
НайденнаяЕдиницаОбъект.Коэффициент = 1;
НайденнаяЕдиницаОбъект.Владелец = Ссылка;
Попытка
НайденнаяЕдиницаОбъект.Записать();
Исключение
Сообщить(«Не удалось записать единицу хранения остатков: » + ОписаниеОшибки(), СтатусСообщения.Важное);
Отказ = Истина;
Возврат;
КонецПопытки;
НайденнаяЕдиница = НайденнаяЕдиницаОбъект.Ссылка;
КонецЕсли;
ЕдиницаХраненияОстатков = НайденнаяЕдиница;
Попытка
ЗаписатьВФорме();
Исключение
Отказ = Истина;
КонецПопытки;
И каждый раз при добавлении нового элемента в справочник Номенклатура добавляется новый элемент в справочник ЕдиницыИзмерения, так как судя по коду каждый элемент справочника ЕдиницыИзмерения должен иметь владельцем нового добавляемого элемента в справочник Номенклатура. Вопрос заключается в том, как этого избежать, ведь неправильно то, что каждый раз при создании элемнта Номенклатуры добавляется новый элемент в справочник ЕдиницыИзмерения? Ошибка же происходила потому, что элементы в справочнике ЕдиницыИзмерения достигли кода 999 и почему-то дальше не инкрементировались…
1. Используйте лидирующие нули в коде.
2. Какая у вас конфигурация? Почему неправильно, «ведь неправильно то, что каждый раз при создании элемнта Номенклатуры добавляется новый элемент в справочник ЕдиницыИзмерения»?
Смотря для какой типовой конфигурации.
конфигурация Управление Торговлей…просто вроде бы как раньше в справочник ЕдиницыИзмерения не добавлялись новые объекты каждый раз при создании…
Странным на мой взгляд является то, что выборка из справочника происходит по владельцу, которым является создаваемый объект справочника Номенклатура. И если выборка ничего не обнаружила (а обнаружит она только при изменении, при создании нового еще нечему подчиняться), то создается новый элемент…
Возможно, у Вас косяк с нумерацией проблемного справочника.
Не желательно иметь в одном справочнике номера с префиксами типа(!Пример!) «ГР00001» и «000001» если нумерация идет автоматом.
Теги:
- Форум 1С
-
►
Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4 -
►
Пользователям 1С Предприятие 8 -
►
Невозможно добавить новый элемент в справочник Номенклатура. Код не уникален
Похожие темы (5)
Поиск
-
Всем доброго времени суток!
Платформа: 1С:Предприятие 8.3 (8.3.6.2390)
Конфигурация: Управление торговлей, редакция 11.2 (11.2.2.106)Пытаюсь создать новую номенклатуру:
НоваяНоменклатураСпр = Справочники.Номенклатура.СоздатьЭлемент(); НоваяНоменклатураСпр.Родитель = ГруппаНоменклатуры; НоваяНоменклатураСпр.ВидНоменклатуры = ВидТовараМассив[Число(ТоварСтрока.ВидНоменклатуры)]; НоваяНоменклатураСпр.СтавкаНДС = СтавкиНДССоответствие.Получить(ТоварСтрока.КоэффициентСтавкиНДС); НоваяНоменклатураСпр.Наименование = СокрЛП(ТоварСтрока.Наименование); НоваяНоменклатураСпр.НаименованиеПолное = СокрЛП(ТоварСтрока.Наименование); Если НоваяНоменклатураСпр.ВидНоменклатуры = АлкогольТовар Тогда НоваяНоменклатураСпр.ВидАлкогольнойПродукции = Справочники.ВидыАлкогольнойПродукции.НайтиПоНаименованию("АлкогольЗагруженный"); НоваяНоменклатураСпр.ОбъемДАЛ = Число(1); КонецЕсли; Попытка СозданоНовыхЭлементов = СозданоНовыхЭлементов+1; НоваяНоменклатураСпр.Записать()
А в ответ получаю:
{Форма.Форма.Форма(244)}: Ошибка при вызове метода контекста (Записать) НоваяНоменклатураСпр.Записать(); по причине: Ошибка при выполнении обработчика - 'ПередЗаписью' по причине: {Справочник.Номенклатура.МодульМенеджера(991)}: Преобразование значения к типу Булево не может быть выполнено И Не ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Номенклатура.ВидНоменклатуры, "СодержитДрагоценныеМатериалы") Тогда
Мне как-то, при создании номенклатуры, надо указать ДрагМатериал это или нет, так?
Если да то как? -
Online
nomad_irk
Гуру в 1С- Регистрация:
- 20 окт 2008
- Сообщения:
- 9.590
- Симпатии:
- 998
- Баллы:
- 204
Не стесняйтесь пользоваться отладкой.
Проверяется значение реквизита элемента справочника «ВидНоменклатуры», возвращает значение НЕ типа Булево о чем вам сообщается в тексте ошибки. -
Вы всё «полезнее» и «полезнее» даёте ответы. И не лень писать бесполезный (пустой ответ)? Или вам за это какие-то балы дают, на форуме?
Я просто не очень понимаю, если неохота отвечать или вопрос считаете через чур «банальным», зачем тратить своё время на пустой и бесполезный ответ и моё время, на прочтение этого ответа?P.S.
Отладчиком я пользоваться умею и прежде чем сюда писать, я им уже воспользовался.
В отладчике, упав в функцию :ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Номенклатура.ВидНоменклатуры, "СодержитДрагоценныеМатериалы") Тогда
увидел следующее: Результат Null
-
Online
nomad_irk
Гуру в 1С- Регистрация:
- 20 окт 2008
- Сообщения:
- 9.590
- Симпатии:
- 998
- Баллы:
- 204
Из ваших слов, отладчиком вы пользуетесь как-то странно на мой взгляд.
результат = NULL и что дальше? по какой причине такой результат? что нужно сделать, чтобы результат был отличный от NULL? вас эти вопросы не беспокоят вообще или вы не задавались этими вопросами?
Можете, конечно, дальше сидеть и удивлятся тому факту, что результат работы функции — NULL……
-
Offline
Dem0lisher
Профессионал в 1С- Регистрация:
- 4 авг 2009
- Сообщения:
- 1.261
- Симпатии:
- 101
- Баллы:
- 104
На самом деле ответ про отладку действительно полезный.
А вы ожидали, что вам скажут — «в строке 14387 замени букву ‘а’ на букву ‘б’ «?
За вас в код никто разбираться не полезет, а если вы сами в нем разберетесь с помощью отладчика, то завтра вместо того, чтобы потратить 4 часа ожидая ответа на форуме найдете ответ сами за 15 минут.Функция вам вернула Null, вы провалились отладчиком в функцию и поняли, почему она вернула NULL?
Или просто всплеснули руками и опубликовали очередное сообщение на форуме?Запустите глобальный поиск по конфигурации и посмотрите где еще вызывается эта функция, с какими параметрами и что возвращает в других случаях.
— Объединение сообщений, 4 мар 2016 —
Другое дело, если у вас отладчик туда не заходит — такое каждый день тут спрашивают
-
Offline
bajiepka
Профессионал в 1С- Регистрация:
- 26 сен 2014
- Сообщения:
- 460
- Симпатии:
- 31
- Баллы:
- 54
у вас запись идёт в попытке. выведите в какое-то поле на форме или в сообщение на клиенте результат функции ОписаниеОшибки() в исключении попытки. там вам и напишет про поле, которое не удаётся записать (изменить)
-
Всё оказалось просто — ВидНоменклатуры я получал через НайтиПоНаименованию, а в моём случае имя группы совпадало с наименованием, в итоге Вид Номенклатуры ЭтоГруппа,
что и приводило к ошибке.
Всем спасибо -
Offline
LordMaverick
Профессионал в 1С- Регистрация:
- 17 мар 2014
- Сообщения:
- 3.975
- Симпатии:
- 465
- Баллы:
- 104
ну на признак группы тоже надо проверять хотя лучше не делать совпадающих названий
Настройка обмена выполнена правильно, но обмен все равно проходит некорректно? Рассмотрим типичные проблемы, возникающие в процессе интеграции сайта с 1С, и способы их решения.
Обмен заказами завершен с ошибками
Проблема. При попытке обмена заказов в 1С выходит сообщение:
Выгружено товаров: 1
Выгружено картинок: 1
Выгрузка товаров успешно завершена
Не установлен реквизит «ГруппаДоступаККонтрагенту». Элемент не записан!
Не установлен реквизит «РегионДоставки». Элемент не записан!
Не установлен реквизит «Основная форма оплаты». Элемент не записан!
{Обработка.ОбменССайтом(3468)}: Ошибка при вызове метода контекста (Записать): Операция не выполнена!
Произошла ошибка: . По причине:
Не удалось найти/создать контрагента.
Не удалось обработать документы, загруженные с сервера.
Обмен не выполнен.
Не выгружен ни один заказ.
Обмен заказами завершен с ошибками!!!
Решение. Скорее всего, в используемой конфигурации предусмотрена обязательность заполнения указанных выше реквизитов для элемента справочника Контрагенты.
Не меняется статус заказа при выгрузке из 1С
Проблема. Не меняется статус заказа при выгрузке из 1С
В соответствие с логикой синхронизации 1С и «1С-Битрикс: Управление сайтом», статус заказа меняется, если из 1С передались дата оплаты либо дата отгрузки товара. Чтобы эти даты попали в XML-файл, который формируется 1С и передаётся на сайт, нужно сформировать и провести нужные документы.
- В 1С:УТ зарегистрировать оплату заказа можно путем ввода на основании заказа документов оплаты, таких как Платежное поручение входящее и Приходный кассовый ордер.
- Отгрузка, как правило, регистрируется вводом на основании заказа документа Реализация товаров и услуг.
- Если в регистре Расчеты с контрагентами остаток по заказу <= 0, заказ считается оплаченным.
- Если в регистре Заказы покупателей остаток по заказу <= 0, заказ считается отгруженным. У конфигурации УПП принцип тот же.
Статусы, в которые будут переводиться заказы при получении дат оплаты и отгрузки, устанавливаются в настройках модуля интернет-магазина: параметры При получении оплаты переводить заказ в статус и При получении разрешения доставки переводить заказ в статус соответственно.
Изменения товаров не зарегистрированы. Выгрузка товаров не произведена
Проблема. 1С заполнена и настроена на обмен с «1С-Битрикс: Управление сайтом», который тоже настроен на интеграцию с 1С. При нажатии на кнопку Выполнить обмен сразу появляется сообщение в 1С: Изменения товаров не зарегистрированы. Выгрузка товаров не произведена.
Решение. Возможные ошибки:
- Обычно появляется из-за некорректной настройки выгрузки товаров на вкладке Выгрузка товаров. Стоит обратить внимание на то, что настраивается именно фильтр(!), а не выбираются поля для выгрузки. Если отмечается поле для фильтра, то значение этого поля в фильтре должно быть задано.
- В 1С: Управление торговлей обратите внимание в справочнике Номенклатура на реквизит вид номенклатуры. Должен быть обязательно признак товар (наименование товар и тип номенклатуры товар).
- Если обмен осуществляется в режиме выгрузки изменений, а этих изменений с момента последнего обмена не зафиксировано, то возникает указанная ошибка. Стоит обратить внимание на следующие моменты:
- Если осуществляется полная выгрузка каталога на сайт, то настройка фильтра необязательна (нужно снять выделение со всех отмеченных полей на вкладке Выгрузка товаров).
- Изменения товара никаким образом не относятся к сайту, т.е. удаление товаров на сайте или их редактирование не фиксируется в 1С. При обмене выгружаются изменения товаров, произведённые именно в 1С с момента последней выгрузки.
Изменения на сайте не приходят в 1С
Проблема. 1С заполнена и настроена на обмен по расписанию с «1С-Битрикс: Управление сайтом». Развернута копия базы 1С. Изменения в «1С-Битрикс: Управление сайтом» не приходят в 1С, т.е. якобы на сайте нет изменений.
Решение. На самом деле, изменения есть и они приходят в копию базы 1С. Чтобы изменения отслеживались в оригинале базы 1С, просто поменяйте пароль у пользователя «1С-Битрикс: Управление сайтом».
Как выгрузить каталоги из 1С в разные типы инфоблоков?
Проблема. Как выгрузить каталоги из 1С в разные типы инфоблоков?
Решение. Чтобы осуществить выгрузку в разные типы инфоблока, следует поместить несколько компонентов catalog.import.1c на разные страницы.
Например, имеем две страницы: http://mysite.ru/1c_import_1.php и http://mysite.ru/1c_import_2.php. На обеих страницах настраиваем компонент catalog.import.1c — указываем в параметрах разные типы инфоблоков и устанавливаем флажок у опции Импортировать с учетом типа инфоблока.
Затем при настройке импорта в 1С, для выгрузки в нужный тип инфоблока указываем разные файлы: http://mysite.ru/1c_import_1.php либо http://mysite.ru/1c_import_2.php.
Пример файла:
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("import1");
?>
<?$APPLICATION->IncludeComponent("bitrix:catalog.import.1c", "", Array(
"IBLOCK_TYPE" => "books",
"SITE_LIST" => array(),
"INTERVAL" => "30",
"GROUP_PERMISSIONS" => array(0 => "1"),
"USE_OFFERS" => "N",
"USE_IBLOCK_TYPE_ID" => "Y",
"SKIP_ROOT_SECTION" => "N",
"ELEMENT_ACTION" => "D",
"SECTION_ACTION" => "D",
"FILE_SIZE_LIMIT" => "204800",
"USE_CRC" => "Y",
"USE_ZIP" => "Y",
"USE_IBLOCK_PICTURE_SETTINGS" => "N",
"GENERATE_PREVIEW" => "Y",
"PREVIEW_WIDTH" => "100",
"PREVIEW_HEIGHT" => "100",
"DETAIL_RESIZE" => "Y",
"DETAIL_WIDTH" => "300",
"DETAIL_HEIGHT" => "300",
"TRANSLIT_ON_ADD" => "Y",
"TRANSLIT_ON_UPDATE" => "Y",
"TRANSLIT_MAX_LEN" => "100",
"TRANSLIT_CHANGE_CASE" => "L",
"TRANSLIT_REPLACE_SPACE" => "_",
"TRANSLIT_REPLACE_OTHER" => "_",
"TRANSLIT_DELETE_REPEAT_REPLACE" => "Y"
),
false
);?>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
Не удалось найти вид номенклатуры
Проблема. Не удалось найти вид номенклатуры
В процессе обмена 1С с сайтов возникает ошибка: Не удалось найти вид номенклатуры: Услуга Не удалось найти вид номенклатуры: Товар Не удалось найти/создать номенклатуру. Не удалось обработать документы, загруженные с сервера.
Решение. Ошибка возникает, если в 1С нет типов номенклатуры Услуга и Товар. Эти типы номенклатуры критичны для процесса обмена данными с сайтом. Следует создать в 1С эти типы номенклатуры и только поле этого осуществлять обмен.
Поле объекта не обнаружено
Проблема. В процессе обмена возникает ошибка Поле объекта не обнаружено.
В процессе обмена заказами возникает ошибка: {Обработка.ОбменССайтом(3271)}: Поле объекта не обнаружено (Наименование) >> ОтобразитьСостояние(«Идентификация контрагента: » + СтрокаДД.СтруктураДанныхКонтрагента.Наименование);
Решение. Проверьте настройки интеграции с 1С, закладка Профили обмена: установлены ли соответствия для полей заказа. Обратите внимание на поля Полное Наименование и Наименование. Эти поля критичны для 1С.
Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.
- Возникает ошибка следующего вида:
Выгружено товаров: 679 Выгружено картинок: 469 Произошла ошибка на стороне сервера. Получен неизвестный статус импорта. Обмен не выполнен. Ответ сервера. Fatal error : Allowed memory size of 67108864 bytes exhausted (tried to allocate 102401 bytes) in /var/www/bitrix/modules/iblock/classes/general/cml2.php on line 483 Выгрузка товаров завершена с ошибками!
Решение. Ошибка скорее всего связана с нехваткой ресурсов на масштабирование передаваемых на сервер изображений. Выходом из данной ситуации может служить отключение опции Выгружать картинки (вкладка Выгрузка товаров в настройке обмена в 1С).
Также можно увеличить размер выделяемой памяти в настройках PHP (параметр memory_limit), для этого следует обратиться к хостинг-провайдеру.
- Возникает ошибка следующего вида:
Выгружено товаров: 46 Выгружено картинок: 0 Произошла ошибка на стороне сервера. Получен неизвестный статус импорта. Обмен не выполнен Ответ сервера: DB query error. Please try later. Выгрузка товаров завершена с ошибками!
Решение. Ошибка может возникать в случае некорректной передачи файла на сервер. В процессе отправки файл может «обрезаться» и терять свою целостность, в итоге файл на сервер передаётся некорректным по содержанию.
Причиной может служить прокси-сервер, через который осуществляется обмен. Попробуйте осуществить выгрузку не через прокси-сервер. Также попробуйте отключить опцию Использовать сжатие zip, если доступно в настройках интеграции с 1С — возможно, на сервере не поддерживается ZIP-сжатие. Проверьте настройки интеграции с 1С.
Произошла ошибка на стороне сервера. Файл не отправлен
В процессе обмена возникает такого вида ошибка:
Выгружено товаров: 3 Выгружено картинок: 0 Выгрузка товаров успешно завершена Выгружено заказов: 1 Произошла ошибка на стороне сервера. Файл не отправлен (C:Documents and SettingsUserLocal SettingsTempv8_5075_63.zip). Обмен не выполнен Ответ сервера: Файл для импорта пуст. Обмен заказами завершён с ошибками!
Решение. Причины возникновения ошибки могут быть следующие:
- На компьютере, где установлена 1С, имеется файрволл или антивирус, препятствующий корректной передаче файла или блокирующий отправку файла на сервер.
- Некорректно работает функции расширения ZIP, вследствие чего из архива не распаковываются файлы. Для решения возникшей проблемы рекомендуется:
- Установить последние стабильные версии обновлений модуля интернет-магазина.
- На время обмена отключить на локальной машине все блокирующее ПО (антивирус, файрволлы и т.д.)
- Отключить ZIP-сжатие в настройках интеграции с 1С.
Не работает авторизация при обмене данными с 1С
Решение. Часто проблема возникает в результате работы PHP в режиме CGI. В этом режиме есть проблемы с передачей данных авторизации HTTP в PHP. Можно это проверить, посмотрев phpinfo() в разделе: Server API: CGI. Можно обойти проблему, но необходимо чтобы на сервере была включена обработка .htaccess и поддержка mod_rewrite. Выполните следующие действия:
- В корне сайта в файл .htaccess добавьте строки:
RewriteEngine on
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
- Закомментируйте следующие строки в файле bitrix/admin/.htaccess, которые отключают mod_rewrite:
#<ifmodule mod_rewrite.c="">
# RewriteEngine Off
#</ifmodule>
Примечание: данный файл может отсутствовать, поскольку он создается вручную.
- В файл bitrix/php_interface/dbconn.php добавьте строки:
$remote_user = $_SERVER["REMOTE_USER"]
? $_SERVER["REMOTE_USER"] : $_SERVER["REDIRECT_REMOTE_USER"];
$strTmp = base64_decode(substr($remote_user,6));
if ($strTmp)
list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':', $strTmp);
Для проверки работоспособности HTTP-авторизации воспользуйтесь скриптом
Внимание! Данный вариант обхода не всегда может решить проблему. Если при выполнении всех рекомендаций HTTP-авторизация не заработала, то следует обратиться к хостинг-провайдеру с этой проблемой.
При выгрузке каталога из 1С не ставит галочку «уменьшать количество при заказе»
Проблема. При выгрузке каталога из 1C не ставит галочку уменьшать количество при заказе
Решение. Чтобы исправить это, необходимо в файле init.php добавить код, который будет срабатывать при добавлении продукта (через событие OnProductAdd):
<?
AddEventHandler("sale", "OnProductAdd", "OnProductAdd");
function OnProductAdd($ID,$Fields)
{
$res=Array("QUANTITY_TRACE"=>'Y);
CCatalogProduct::Update($ID,$res);
}
?>
Возможные причины медленного импорта из 1С
Проблема. Медленный импорт из 1C.
Возможные причины:
Включённая индексация. Для ускорения можете в настройках инфоблока выключить индексацию элементов и разделов, а также свойств.
Проактивная защита, которая меняет идентификатор сессии каждую минуту. В случае интеграции с 1C приложение 1C не подхватывает новый идентификатор и пытается получить переменные сессии со старым ID сессии. В сессии хранится шаг импорта, если не удаётся в сессии найти этот шаг, то считается, что шаг равен 1, т.е. импорт начинается сначала. Попробуйте отключить хранение сессий в базе и смену идентификатора сессии.
Если структура каталога в 1С отличается от каталога на сайте?
Задача: Структура каталога на сайте должна отличаться от структуры в 1C.
Варианты решения:
Вариант 1. Делается отдельный классификатор — инфоблок и разделы. У разделов создаётся свойство привязка к разделам, и нужные «человеческие» разделы привязываются к разделам инфоблока с классификатором, который пришел из 1C. Можно сделать множественную привязку — будет проще свести в один раздел из кучи непонятных в 1C.
Вариант 2. В 1C можно создать такой объект как прайс-лист и попробовать настроить обмен с сайтом, уже используя его как прокси. Т.е. если в справочнике Номенклатура бардак и вообще куча всякого, что на сайте не должно показываться, то создаётся прайс-лист, и уже в нём создаются нужные секции. И специально обученный сотрудник добавляет в узлы прайс-листа ссылки на позиции из справочника номенклатура.
Тогда на сайт будет уходить CML, структура которого берётся из прайс-листа, а не из номенклатурного справочника.
Ошибка импорта метаданных
Проблема. На этапе выгрузки свойств после построения таблиц выводится сообщение об ошибке:
Выгружено товаров: 1 832
Выгружено картинок: 0
Выгружено предложений: 0
Произошла ошибка на стороне сервера.
Обмен не выполнен
Ответ сервера:
Ошибка импорта метаданных.
Выгрузка товаров завершена с ошибками!!!
Причина. Ошибка может возникать, если названия свойств начинаются с цифр. Первый знак в названии должен быть буквой.
Проблема. На этапе выгрузки свойств после построения таблиц выводится сообщение об ошибке:
Ошибка импорта метаданных. В редакции Малый Бизнес нет возможности иметь более одного типа цены. Настройте выгрузку из 1С или перейдите на другую редакцию БУС.
Причина. Такая ошибка возникает, когда клиент забывает указать в настройках обмена конкретное соглашение (в настройках 1С), по которому должны выгружаться цены. Соглашение указывается в отборах выгружаемых инфоблоков.
Выгрузка картинок
Проблема. Неполная выгрузка картинок.
Картинки выгружаются из 1С, только при первой полной выгрузке каталога товаров, не важно выгрузка была на в папку на локальном компьютере или на сайт. В последствии картинки выгружаются только новые и измененные.
Если изменены настройки в 1С и картинки не выгрузились в первый раз на сайт, то в настройках модуля обмена выполните обмен через кнопку принудительной полной выгрузке картинок.
Чаще всего эта ошибка возникает при работе непосредственно со справочниками договоров, контрагентов, номенклатуры и т. д. Пользователь добавляет в любой из справочников новую запись, при этом система 1С: Предприятие 8 автоматически присваивает ему код, но при сохранении записи выдает ошибку «Код не уникален!», а, следовательно, сохранить объект не удается.
В чем причина появления данной ошибки?
А причина может быть в некорректной нумерации объектов справочника. Как это происходит? Обычно при создании новой записи в каком-то из справочников программа сама генерирует код записи. Если в предыдущих записях пользователь редактировал код вручную, то в последствии есть вероятность того, что при создании последующих записей разрядность кода увеличится на один знак и перестает помещаться в поле, а значит генерация кодов начнется сначала. Только вот хранить объекты с одинаковыми кодами в справочниках 1С нельзя, а, значит, пользователь в такой ситуации будет получать на экран сообщение об ошибке.
Как исправить ошибку «Код не уникален»?
Безусловно, решение этой проблемы предусмотрено разработчиками 1С. Заключается оно в полной перенумерации элементов справочника. Для этого на диске информационно-технологического сопровождения 1С (1с итс) есть специальная обработка, которая называется «УниверсальныеПодборИОбработкаОбъектов.epf». Она располагается в каталоге 1CITSEXEExtRepsUNIREPS81UniversalSelection.
Все, что нужно от пользователя ― зайти в вышеуказанный каталог, запустить обработку и подождать пока завершится процесс перенумерации объектов выбранного справочника.
Как предотвратить появление ошибки «Код не уникален»?
Чтобы предотвратить появление данной ошибки при работе со справочниками 1С, в первую очередь не рекомендуется производить ручное редактирование кодов записей. Именно вмешательство в программную нумерацию и приводит чаще всего в ее возникновению. Если же без редактирования кодов не обойтись, то продумайте ситуацию наперед.
Рекомендуем также еще статьи по программам 1С:
- Выбор режима проведения документов в 1С
- Настройка доступа к подсистемам программ 1С 8.2
- Установка 1С: Предприятие 8.0
Вы можете получать новые материалы сайта по RSS-каналу или можете подписаться на новости 1С от Информ Актив и получать их еженедельно на Ваш e-mail .