1с заказы ошибка записи справочников

  1. Всем доброго времени суток!

    Платформа: 1С:Предприятие 8.3 (8.3.6.2390)
    Конфигурация: Управление торговлей, редакция 11.2 (11.2.2.106)

    Пытаюсь создать новую номенклатуру:

                   
    НоваяНоменклатураСпр = Справочники.Номенклатура.СоздатьЭлемент();
    НоваяНоменклатураСпр.Родитель  = ГруппаНоменклатуры;
    НоваяНоменклатураСпр.ВидНоменклатуры = ВидТовараМассив[Число(ТоварСтрока.ВидНоменклатуры)];
    НоваяНоменклатураСпр.СтавкаНДС = СтавкиНДССоответствие.Получить(ТоварСтрока.КоэффициентСтавкиНДС);
    НоваяНоменклатураСпр.Наименование  = СокрЛП(ТоварСтрока.Наименование);
    НоваяНоменклатураСпр.НаименованиеПолное  = СокрЛП(ТоварСтрока.Наименование);
           Если НоваяНоменклатураСпр.ВидНоменклатуры = АлкогольТовар Тогда
                    НоваяНоменклатураСпр.ВидАлкогольнойПродукции = Справочники.ВидыАлкогольнойПродукции.НайтиПоНаименованию("АлкогольЗагруженный");
                        НоваяНоменклатураСпр.ОбъемДАЛ  = Число(1);
            КонецЕсли;
            Попытка
                СозданоНовыхЭлементов = СозданоНовыхЭлементов+1;
            НоваяНоменклатураСпр.Записать()
    

    А в ответ получаю:

    {Форма.Форма.Форма(244)}: Ошибка при вызове метода контекста (Записать)
                    НоваяНоменклатураСпр.Записать();
    по причине:
    Ошибка при выполнении обработчика - 'ПередЗаписью'
    по причине:
    {Справочник.Номенклатура.МодульМенеджера(991)}: Преобразование значения к типу Булево не может быть выполнено
            И Не ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Номенклатура.ВидНоменклатуры, "СодержитДрагоценныеМатериалы") Тогда

    Мне как-то, при создании номенклатуры, надо указать ДрагМатериал это или нет, так?
    Если да то как?


  2. nomad_irk

    Online

    nomad_irk
    Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.590
    Симпатии:
    998
    Баллы:
    204

    Не стесняйтесь пользоваться отладкой.
    Проверяется значение реквизита элемента справочника «ВидНоменклатуры», возвращает значение НЕ типа Булево о чем вам сообщается в тексте ошибки.

  3. Вы всё «полезнее» и «полезнее» даёте ответы. И не лень писать бесполезный (пустой ответ)? Или вам за это какие-то балы дают, на форуме?
    Я просто не очень понимаю, если неохота отвечать или вопрос считаете через чур «банальным», зачем тратить своё время на пустой и бесполезный ответ и моё время, на прочтение этого ответа?

    P.S.
    Отладчиком я пользоваться умею и прежде чем сюда писать, я им уже воспользовался.
    В отладчике, упав в функцию :

    ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Номенклатура.ВидНоменклатуры, "СодержитДрагоценныеМатериалы") Тогда

    увидел следующее: Результат Null


  4. nomad_irk

    Online

    nomad_irk
    Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.590
    Симпатии:
    998
    Баллы:
    204

    Из ваших слов, отладчиком вы пользуетесь как-то странно на мой взгляд.

    результат = NULL и что дальше? по какой причине такой результат? что нужно сделать, чтобы результат был отличный от NULL? вас эти вопросы не беспокоят вообще или вы не задавались этими вопросами?

    Можете, конечно, дальше сидеть и удивлятся тому факту, что результат работы функции — NULL……


  5. Dem0lisher

    Offline

    Dem0lisher
    Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.261
    Симпатии:
    101
    Баллы:
    104

    На самом деле ответ про отладку действительно полезный.
    А вы ожидали, что вам скажут — «в строке 14387 замени букву ‘а’ на букву ‘б’ «?
    За вас в код никто разбираться не полезет, а если вы сами в нем разберетесь с помощью отладчика, то завтра вместо того, чтобы потратить 4 часа ожидая ответа на форуме найдете ответ сами за 15 минут.

    Функция вам вернула Null, вы провалились отладчиком в функцию и поняли, почему она вернула NULL?
    Или просто всплеснули руками и опубликовали очередное сообщение на форуме?

    Запустите глобальный поиск по конфигурации и посмотрите где еще вызывается эта функция, с какими параметрами и что возвращает в других случаях.

    — Объединение сообщений, 4 мар 2016

    Другое дело, если у вас отладчик туда не заходит — такое каждый день тут спрашивают :)


  6. bajiepka

    Offline

    bajiepka
    Профессионал в 1С

    Регистрация:
    26 сен 2014
    Сообщения:
    460
    Симпатии:
    31
    Баллы:
    54

    у вас запись идёт в попытке. выведите в какое-то поле на форме или в сообщение на клиенте результат функции ОписаниеОшибки() в исключении попытки. там вам и напишет про поле, которое не удаётся записать (изменить)

  7. Всё оказалось просто — ВидНоменклатуры я получал через НайтиПоНаименованию, а в моём случае имя группы совпадало с наименованием, в итоге Вид Номенклатуры ЭтоГруппа,
    что и приводило к ошибке.
    Всем спасибо


  8. LordMaverick

    Offline

    LordMaverick
    Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.975
    Симпатии:
    465
    Баллы:
    104

    ну на признак группы тоже надо проверять :) хотя лучше не делать совпадающих названий


1C-pro.ru - форум по 1С:Предприятию 7.7, 8.0, 8.1, 8.2, 8.3

По умолчанию Re: 1с: Заказы

Общие модули -> МобильноеПриложениеЗаказы Клиентов
Ошибка в 315 строке

Если Число(ВерсияМобильногоПри� �ожения) <> 1 Тогда // это 315 строка
СтруктураОтвета.Success = Ложь;
СтруктураОтвета.ResultMessage = НСтр(«ru = ‘Требуется обновление мобильного приложения.'»);
Возврат ПодготовитьОтветWS(Структу� �аОтвета, «Permit»);
КонецЕсли;

Я закомментировал данное условие. Теперь ошибка при синхронизации следующая «не найден узел обмена для пользователя: admin»

———- Post added at 19:40 ———- Previous post was at 19:24 ———-В разделе CRM и продажи включил «синхронизацию», в настройки синхронизации добавил логин с которого я пытаюсь войти. теперь пишет ошибку «ошибка записи настроек». не знаю уже что делать

Добрый день!

В наличии УТ 11.1 и 1С 8.3. Сервер на апаче 2.2, если имеет значение.

Создан пользователь с правами на использование Заказами 1С. При синхронизации выдавало ошибку «Ошибка разбора XML [1,1]. Extra content at the end of the document». Исправил путём выдачи полных прав пользователю, т.к. не понял, какие именно ещё права нужны помимо пользователя 1с-заказы.

Получение данных с сервера проходит нормально (цены/остатки). Но не отправляются данные на сервер. Т.е. я на планшете создаю новый заказ, помечаю на обмен, делаю синхронизацию, выдаёт ошибку аналогично вышеописанной:

«Ошибка записи объектов в БД. Ошибка разбора XML [1,1]. Extra content at the end of the document»

Подозреваю, что опять же не хватает каких-то прав. Подскажите,какую ещё галочку поставить, чтоб исправить.

Ошибка разбора XML: Приложение 1С:Заказы

Ситуация:

конфигурация ут 11.1.6, актуальная версия ут 11.1.10, версия приложения последняя с маркета при начальной синхронизации происходит ошибка

Поиск причины по шагам

Шаг 1. Проверка access.log апача .

Приходят два запроса:

x.x.x.30 — — [30/Jun/2015:09:00:04 +0400] «GET /trade/ws/CustomerOrdersExchange.1cws?wsdl HTTP/1.1» 200 67058
x.x.x.30 — — [30/Jun/2015:09:00:06 +0400] «POST /trade/ws/CustomerOrdersExchange.1cws HTTP/1.1» 500 757

Первый успешно считывает описание сервиса

Второй приходит с ошибкой на стороне сервера.

Предположение: несовместимость форматов различных версий, что-то передается не в том формате, или с ошибочными данными

Шаг 2: частичное обновление конфигурации (полное пока нельзя, поскольку она с доработками и идет интеграция с сайтом, чтобы не вызывать возможных срывов в работе)

сохраняю конфигурацию

обновляю конфигурацию в режиме объединения/замещения

  • общие модули с именами МобильноеПриложениеЗаказыКлиентов* ( 4 шт)
  • XDTO-пакеты/Все
  • Web-сервисы/CustomerOrdersExchange
  • Планы обмена/МобильноеПриложениеЗаказыКлиентов

Тестирую, синхронизацию. проходит далее, но возникает ошибка «Не найден узел обмена для пользователя».

Шаг3:

Тут ошибка случайная, но тем, не менее, она возникла.(«Не найден узел обмена для пользователя»)

Для каждого экземпляра андроид-приложения в 1С требуется создать узел в плане обмена, в нем сопоставить пользователя. В процессе первоначальной настройки, узел был создан для другого пользователя, затем пользователь изменен, а в текущей реализации конфигурации, это приводит к ошибке отсутствия узла т.к. идентификатор пользователя записывается в код узла, только при его незаполненности.

Создав новый узел (или программно изменив код в старом), эта ошибка уходит.

Здесь еще есть нюанс, который надо учесть: после успешной синхронизации, код узла заменяется идентификатором устройства, и подключении под этим пользователем с различных устройств одновременно не возможно (вызовет такую же ошибку, как выше). Переход на другое устройство,  потребует установки кода узла  в  уникальный идентификатор пользователя, затем узел привяжется к новому устройству.

Шаг 4:

Всё еще выходит ошибка, но уже гораздо позднее, синхронизация как-то продвинулась, что даже настройки подключения не слетают.

Предположение:  не совместимость запросов объединенных модулей

Надо отлаживать, но подключения к вэбсервисам почему-то не отлаживается, возможно проблема в платформе 8.3.5.1186.

Танцы с бубном, создание файлов «comcntrcfg.xml и webservicecfg.xml», добавление строки в «default.vrd», перезапуски, не дают результаты. Откладываем на потом.

Шаг 5

В процессе работы вызываются функции вэбсервиса, которые вызывают экспортные функции общих моделей, т.е. есть возможность отладить их напрямую.

Накидываем форму обработки «Выполнятель» (для управляемой формы у меня не было).

Получается вот такой код-скрипт для начального тестирования:

MobileApplicationVersion  = "не 1";//Иначе потребует обновления
MobileDeviceID  = "1";
MobileDeviceID  = "18c07362-bdeb-439d-9f8b-59b19cefd670";//Уникальный идентификатор пользователя, вот тут проблема, что в функциях используется текущий пользователь
Ответ = МобильноеПриложениеЗаказыКлиентов.НачалоОбмена(MobileApplicationVersion, MobileDeviceID);

Сообщить(Ответ);
Попытка 
	Сообщить(Ответ.ResultMessage);
	Сообщить("Успешно "+Ответ.Success);
Исключение
КонецПопытки;

Пришлось опять менять/создать пользователя в узле,  текущего пользователя. т.к. хотя передается уид любого пользователя, но сравнивается он с текущим  (для сеанса соединения все пройдет нормально).

Теперь у меня код проходит на «Успешно=Истина».

Выполняем вторую часть кода:

Ответ2 = МобильноеПриложениеЗаказыКлиентов.ВыгрузитьСправочники(MobileDeviceID);
Попытка 
	Сообщить(Ответ2.ResultMessage);
	Сообщить("Успешно "+Ответ2.Success);
Исключение
КонецПопытки;

Вот тут и вывелась мне ошибка: оказалось, что при объединении плана обмена я не объединил макеты узла, из которых берутся схемы ответа, и в частности в ответе отсутствовали данные по странам.

Объединяем, обнаруживаем попутно, что еще добавились реквизиты плана, обновляем без них, но предполагаем что придется вернуться к ним в нерабочее время.

Шаг 6 

Фокус не прошел, т.к. запросы в схемах ссылаются на отсутствующие регистры.

Исходим из того что пока мы полное обновление производить не можем.

Оказалось выполняется соединение с РегистрСведений.УчетнаяПолитикаОрганизаций, причем в случае  отсутствия записи передается пустая строка(для этапа тестировани должно подойти). Все остальные схемы ошибок не показывают.

Модифицируем запрос, проверяем дальше.

Тестирование справочников проходит успешно, в ответ выводится xml.

Но приложение все еще вылетает с ошибкой разбора.

Тестируем остальные методы сервиса…

Шаг 7

Ответ3 = МобильноеПриложениеЗаказыКлиентов.ВыгрузитьКлиентов(MobileDeviceID, Истина,"","");
Попытка 
	Сообщить(Ответ3.ResultMessage);
	Сообщить("Успешно "+Ответ3.Success);
Исключение
КонецПопытки;

Успешно!

Ответ4 = МобильноеПриложениеЗаказыКлиентов.ВыгрузитьНастройки(MobileDeviceID);
Попытка 
	Сообщить(Ответ4.ResultMessage);
	Сообщить("Успешно "+Ответ4.Success);
Исключение
КонецПопытки;

Ошибка:

Поле не найдено «РегистрироватьНаличные» <<?>>РегистрироватьНаличные КАК РегистрироватьНаличные,

Это как раз из отсутствующих реквизитов плана обмена, подправляю заполнение структуры реквизитов.

Далее, отсутствует константа «ИспользоватьРасширенныеВозможностиЗаказаКлиента».

Попутно вызвал тестирование выгрузки прайса:

Ответ5 = МобильноеПриложениеЗаказыКлиентов.ВыгрузитьПрайсЛист(MobileDeviceID, Ложь, "")
Попытка 
	Сообщить(Ответ5.ResultMessage);
	Сообщить("Успешно "+Ответ5.Success);
Исключение
КонецПопытки;

Заключение

Тут медлительный сервер впал в ступор, на полчаса и сколько будет еще не известно (индикатора нет).

Ошибкой было: задание второго параметра Истина(Все цены/Измененные), но думаю при первом обмене это бы не помогло).

В базе не меньше 1000 номенклатурных позиций, примерно 10 характеристик к каждой, видимо, это много, и с учетом нехватки памяти, ограничения на уровне записей, надо запастись большим интервалом времени на начальную синхронизацию, может быть есть возможность это ускорить, постараюсь вернуть к этому позже.

В узле обмена наложу условия на отбор номенклатуры, когда буду тестировать на телефоне (как оказалось отбор только по видам цен,). через соглашение еще можно, но косвенно через сегмент номенклатуры….

Тупик?

Оставил «на ночь», через час (по дате последней синхронизации) обмен успешно прошел.

Приложение

<config xmlns="http://v8.1c.ru/v8/comcntrcfg"> 
    <debugconfig debug="true" debuggerURL="tcp://localhost:1562"/> 
    <debugports range="1540:1690"/>
</config>

Половина денег, которые идут на рекламу, выбрасываются впустую; но как узнать, какая именно половина?

 

Добрый день.
После последнего обновления
Комплексная автоматизация, редакция 1.1 + CRM, редакция 1.4 (1.1.29/1.4.6) (1.1.29.1)
вышла ошибка :
«Ошибка при выполнении обработчика — ‘ПередЗаписью’
по причине:
{ОбщийМодуль.ЭлектронныеДокументыСлужебный.Модуль(5387)}: Ошибка при вызове метода контекста (Выполнить)

по причине:
Недостаточно прав для работы с таблицей «Справочник.ЭДПрисоединенныеФайлы»»


Пользователям Право «использованиеОбмена ЭД» я никому не давала, т к мы не пользуемся Обменом и обыкновенному менеджеру по закупкам он не нужен.

 

Татьяна, добрый вечер!
У меня не воспроизводится данная ошибка. Могли бы Вы подробнее написать какие именно права у Вас даны данному пользователю?

 

Уточните, в какой момент выходит эта ошибка? Права таких пользователей типовые или настроены самостоятельно?

 

Добрый день.
Права типовые, но не «полные», а у этого справочника права даны только у того у кого «ПОЛНЫЕ» либо «использованиеОбмена ЭД» (в конфигураторе посмотрела :)), Решила проблему тем что у меня есть одна роль «не типовая» «CRM_Пользователь1» просто туда добавила.

Изменено: Татьяна Катцына05.02.2013 08:04:41

 

Не могли бы вы сказать — в какой момент выдавалась эта ошибка до того, как вы изменили настройку?
Это поможет нам разобраться в возможной проблемой в будущем, у других клиентов.
При старте, в момент обновления или при открытии /записи конкретных данных?

 

в момент пометки  на удаление документа Заказ поставщику пользователем.

 

Сначала прошло обновление, потом пользователь решил пометить документ на удаление, вышла ошибка,  добавила права на чтение,запись, удаление  в «свою» роль. Пользователь перезашел в базу и все заработало.

 

Ясно. Вы не делали еще  обновление на посл. релиз, 1.1.30.1_1.4.6.1 ?
Правда на днях выйдет след. релиз…

 

Да просто не успела :), опять новый !! :)

 

Алексей Полубенский

Посетитель

Сообщений: 1577
Авторитет:

190

Регистрация: 12.02.2010

#10



0


05.02.2013 11:15:45

Ну 1С клепает, мы не виноваты :)

  • 1с документооборот при фоновой маршрутизации процесса произошла ошибка
  • 1с документооборот ошибка создания com объекта cognitive puma
  • 1с документооборот ошибка совместного доступа к файлу
  • 1с документооборот ошибка при вызове метода контекста записать
  • 1с документооборот ошибка для настройки действий комплексного процесса не предусмотрено вариантов