1c не удалось записать компьютеры

Обновлено: 04.07.2024

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

Здесь мы понимаем, что сами затупили и после запуска программы с параметром "ЗапуститьОбновлениеИнформационнойБазы".
Оожидали, что заказ вновь попробует синхронизироваться и записаться.
Но увы даже в логах попытки нет

Вопрос:
- Есть ли где то в битриксе признак синхронизированного документа с 1с?
- Можно ли в битриксе снимать/устанавливать этот признак?

Подниму тему, ибо мне кажется, что это очень важно.
Неужели механизм обмена столь хрупок, что:

1 - ИМ не ожидает благополучного ответа от 1с, о том, что заказ создан?
2 - в ИМ, нельзя проверить, какие заказы синхронизированы с 1с?

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

Я не разработчик Битрикс, но этот вопрос когда-то узнавал, есть служебные таблицы в битриксе где есть этот флаг к заказам, но там были какие-то странности.
Для себя делаю на стороне битрикса захожу в заказ и применяю текущий статус повторно, тогда этот заказ регистрируется для выгрузки в 1С.
Цитата
Сергей Баданов написал:
1 - ИМ не ожидает благополучного ответа от 1с, о том, что заказ создан?
Ожидает. Если заказы в 1С не созданы(а у вас они то созданы), то ИМ потом повторно пришет заказы.
Цитата
Сергей Баданов написал:
1 - ИМ не ожидает благополучного ответа от 1с, о том, что заказ создан?
эээээ, Александр, создать объект и записать в базу, это две разные вещи, я вам говорю, что вам его записать не удалось. точнее ваш же лог это говорит. т.е. в 1с его нет. дык отчего же ИМ признаёт его выгруженным в базу. вы меня хотите убедить что создан это результат?
Цитата
Сергей Баданов написал:
эээээ, Александр, создать объект и записать в базу, это две разные вещи, я вам говорю, что вам его записать не удалось. точнее ваш же лог это говорит. т.е. в 1с его нет. дык отчего же ИМ признаёт его выгруженным в базу. вы меня хотите убедить что создан это результат?

В 1С документ может быть проведен, может быть записан, может быть не записан. Только в 3 случае сайт получит статус, что заказы не загружены.

Если хотите, чтобы заказ повторно выгрузился - пересохраните его на сайте. Это самый простой способ.



Друзья, дабы тема с УНФ не затерялась в постах общего топика по продуктам 1С, создаю отдельную тему для обсуждения.

Релиз с конфигурацией "Управление небольшой фирмой" выпущен недавно, программа отличается в лучшую сторону по интерфейсу от других продуктов 1С, судя по всему компания видит в УНФ будущего флагмана своих продуктов для бизнеса, версия преподносится как необходимая для небольших производств и сфер услуг.

Давайте обсудим ее.

Добавлено:
А авансы от покупателей/поставщиков кто автоматически зачитывает, возникали сложности?

Столкнулась с проблемой, что с 2012 года, в базе есть не зачтенные авансы. И их вручную надо корректировать. Прочитала рекомендации (в интернете), что периодически желательно с помощью отчета "Взаимозачеты" контролировать это и корректировать. Кто как делает?


Ошибку для конфигуратора не выдает. Просто "Не удалось записать".
В журнале регистрации такие ошибки:

: Ошибка определения модифицированности объекта: : Ошибка при вызове метода контекста (Выполнить)
Возврат Запрос.Выполнить().Выгрузить();
по причине:
<(2, 66)>: Поле не найдено "ЮрФизЛицо"
ВЫБРАТЬ Код, КодПоОКАТО, КодПоОКПО, НаименованиеПолное, Префикс, <<?>>ЮрФизЛицо, ПометкаУдаления, БанковскийСчетПоУмолчанию, ФизическоеЛицо, СвидетельствоДатаВыдачи, СвидетельствоСерияНомер, Наименование, ИНН, КПП ИЗ Справочник.Организации КАК ТекущийОбъект
ВызватьИсключение СтрШаблон(

Ошибки те же.
После обновления не могу внести изменения в Номенклатуру, Контрагентов, Организации.

Буду пробовать еще раз.

Добавлено:
и в рекомендации к 1.6.1.74 указано
Внимание! Текущая версия конфигурации "Управление небольшой фирмой" предназначена для использования с версией технологической платформы 1С:Предприятие 8 не ниже 8.3.6.2041.

написала в тех. поддержку 1с.

Автоматический зачет отключен сразу после первых попыток использования. Отчет Взаимозачеты используем раз в месяц - это как руки помыть перед едой

Доступ к файловой системе из кода конфигурации

Область применения: управляемое приложение, мобильное приложение, обычное приложение.

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

1.1. Если доступ к файловой системе осуществляется из кода, выполняемого на клиенте, то он выполняется под правами пользователя, от имени которого запущено приложение (тонкий, толстый или веб-клиент). Как правило, это текущий пользователь операционной системы.

1.2. Если доступ к файловой системе осуществляется из кода, выполняемого на сервере, то:

  • при использовании клиент-серверной информационной базы, доступ ограничен правами пользователя, от имени которого запущен сервер 1С:Предприятия (*);
  • при использовании файловой базы, опубликованной на веб-сервере, доступ ограничен правами пользователя, от имени которого запущен веб-сервер.

* Рабочие процессы могут быть также запущены от имени другого пользователя, отличного от того, под которым запускается агент сервера. Подробнее см. руководство администратора клиент-серверного варианта, описание служебного файла swpuser.ini

Область применения (уточнение): управляемое приложение, обычное приложение.

2. Запрещается выполнять запись каких-либо файлов в каталог исполняемых файлов 1С:Предприятия, получаемого с помощью метода КаталогПрограммы . Использование метода КаталогПрограммы допустимо только для чтения или запуска файлов. Например, при работе в ОС Windows, для запуска копии тонкого клиента 1С:Предприятия текущей версии, допустимо использовать:

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

3.1. В именах файлов, автоматически формируемых из кода конфигурации, указывать только английские буквы, а также цифры, а в качестве кодировки текстовых файлов использовать только UTF-8 (именно этот формат предпочтителен, т.к. только с ним корректно работает операционная система macOS).

3.2. В тех случаях, когда имя файла не генерируется системой, а его явно вводит пользователь, разрешить ввод русскоязычных имен, но при этом дать возможность транслитерировать его в англоязычное имя. По умолчанию, если это технически возможно и не снижает удобство работы, рекомендуется предлагать англоязычное имя файла, а для текстовых файлов – сохранение в кодировке UTF-8.

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

В конфигурациях на базе Библиотеки стандартных подсистем для транслитерации имен файлов рекомендуется использовать функцию СтроковыеФункцииКлиентСервер.СтрокаЛатиницей .

Работа с временными файлами и каталогами

При необходимости использования временных файлов и каталогов необходимо соблюдать следующие требования:

1. Для получения имени временного файла следует использовать метод ПолучитьИмяВременногоФайла (исключение составляет веб-клиент, см. ниже п. 3). В противном случае возможна некорректная работа конфигурации в многопользовательском режиме, с включенными профилями безопасностями, возникновение проблем с правами доступа к файлам операционной системы, а также неконтролируемое увеличение количества ненужных временных файлов, которые не будут своевременно удалены.

ИмяПромежуточногоФайла = "C:\Временные файлы 1С\TempFile.xml";
Данные.Записать(ИмяПромежуточногоФайла);

У текущего пользователя может не быть прав на запись в указанный каталог. Кроме того, при одновременном выполнении этого кода из двух разных сеансов возникнет ошибка.

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

Кроме того, при использовании метода ПолучитьИмяВременногоФайла платформа 1С:Предприятие сохраняет контроль над такими файлами и автоматически удаляет их

  • при перезапуске рабочего процесса (если файл был создан на стороне сервера) или клиентского приложения (если файл был создан на стороне клиента);
  • через 20 минут после серверного вызова или сеанса, в котором создан временный файл (при работе в клиент-серверном варианте на платформе 8.3.17 и больше).

Если же имя временного файла было сформировано каким-то другим способом, и прикладной код не удалил (либо по какой-то причине не смог удалить) ранее созданный временный файл, то платформа такой файл не контролирует, и он остается в файловой системе на неопределенное время. Накапливание «потерянных» временных файлов может представлять серьезную проблему, особенно для информационных баз с большим количеством активно работающих пользователей (например, при работе в режиме сервиса).

Таким образом, неправильно :

Каталог = КаталогВременныхФайлов();
ИмяФайла = Строка(Новый УникальныйИдентификатор) + ".xml";
ИмяПромежуточногоФайла = Каталог + ИмяФайла;
Данные.Записать(ИмяПромежуточногоФайла);

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

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

2. Для создания временного каталога рекомендуется также использовать имя, полученное при помощи метода ПолучитьИмяВременногоФайла (исключение составляет веб-клиент, см. ниже п. 3). Это гарантирует уникальность имени создаваемого каталога при работе в многопользовательском режиме и гарантирует, что после перезапуска рабочего процесса или клиентского приложения временный каталог будет автоматически удален платформой 1С:Предприятие. После этого, внутри созданного каталога можно создавать другие каталоги и файлы без ограничений.

3.1. При выполнении кода веб-клиентом метод ПолучитьИмяВременногоФайла недоступен. Поэтому для формирования имен временных файлов и каталогов необходимо использовать функцию КаталогВременныхФайлов и объект УникальныйИдентификатор .

Каталог = КаталогВременныхФайлов();
ИмяФайла = "TempDataFile.xml";
ИмяПромежуточногоФайла = Каталог + ИмяФайла;
Данные.Записать(ИмяПромежуточногоФайла);

Каталог = КаталогВременныхФайлов();
ИмяФайла = Строка(Новый УникальныйИдентификатор) + ".xml";
ИмяПромежуточногоФайла = Каталог + ИмяФайла;
Данные.Записать(ИмяПромежуточногоФайла);

3.2. Если в конфигурацию встроена Библиотека стандартных подсистем , для создания временных каталогов на стороне клиента необходимо использовать процедуру ФайловаяСистемаКлиент.СоздатьВременныйКаталог .

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

// Работа с файлом
.

// Удаляем временный файл
Попытка
УдалитьФайлы(ИмяПромежуточногоФайла);
Исключение
ЗаписьЖурналаРегистрации(НСтр("ru = 'Мой механизм.Действие'"), УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;

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

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

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

Передача файлов между клиентом и сервером

1. При одновременной работе с файлом на клиенте и на сервере необходимо использовать передачу файла через временное хранилище (методы ПоместитьФайлы , ПолучитьФайл , ПолучитьФайлы , НачатьПомещениеФайла , ПоместитьВоВременноеХранилище , ПолучитьИзВременногоХранилища ). В общем случае клиент и серверы кластера - это разные компьютеры с разной файловой системой, причем доступ к файлам может происходить под разными пользователями ОС с различными правами.

&НаКлиенте
Процедура ОбработатьФайл()
.
ИмяФайла = "C:\Файлы для обработки\Загрузка.xml";
Результат = ПроизвестиОбработкуНаСервере(ИмяФайла);
.

Чтение = Новый ЧтениеТекста(ИмяФайла);
.

Результат = Чтение.Прочитать();
Возврат Результат;

ИмяФайлаДляОбработки = "C:\Файлы для обработки\Загрузка.xml";
ОписаниеОповещения = Новый ОписаниеОповещения(
"ОбработатьФайлЗавершение", ЭтотОбъект);

НачатьПомещениеФайла(ОписаниеОповещения,,
ИмяФайлаДляОбработки, Ложь,
УникальныйИдентификатор);

&НаКлиенте
Процедура ОбработатьФайлЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры)

Данные = ПолучитьИзВременногоХранилища(Адрес);
ИмяПромежуточногоФайла = ПолучитьИмяВременногоФайла("txt");
Данные.Записать(ИмяПромежуточногоФайла);

Чтение = Новый ЧтениеТекста(ИмяПромежуточногоФайла);
.
Результат = Чтение.Прочитать();
.

2. Для сохранения данных во временном хранилище между несколькими серверными вызовами, при помещении его в хранилище необходимо использовать параметр УникальныйИдентификаторФормы метода ПоместитьФайл , передав в него идентификатор текущей формы. Такие значения будут удалены из временного хранилища только при закрытии указанной формы. При этом, при повторном помещении того же файла во временное хранилище, предыдущее значение необходимо удалять вручную. Например:

.
// Первый серверный вызов
ИмяФайлаДляОбработки = "C:\Файлы для обработки\Загрузка.xml";
ОписаниеОповещения = Новый ОписаниеОповещения(
"ОбработатьФайлЗавершение", ЭтотОбъект);

НачатьПомещениеФайла(ОписаниеОповещения,,
ИмяФайлаДляОбработки, Ложь,
УникальныйИдентификатор);

&НаКлиенте
Процедура ОбработатьФайлЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры)

.
Результат = ПроизвестиНачальнуюОбработкуНаСервере(Адрес);
ПродолжитьОбработкуФайла();
.

.
// Второй серверный вызов с той же версией файла
Результат = ПроизвестиПромежуточнуюОбработкуНаСервере(Адрес);
.

// Третий серверный вызов с новой версией файла
ОписаниеОповещения = Новый ОписаниеОповещения(
"ПродолжитьОбработкуФайлаЗавершение", ЭтотОбъект);

НачатьПомещениеФайла(ОписаниеОповещения,,
ИмяФайлаДляОбработки, Ложь,
УникальныйИдентификатор);

Процедура ПродолжитьОбработкуФайлаЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры)

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

.
// Первый серверный вызов
ИмяФайлаДляОбработки = "C:\Файлы для обработки\Загрузка.xml";

ОписаниеОповещения = Новый ОписаниеОповещения(
"ОбработатьФайлЗавершение", ЭтотОбъект);

НачатьПомещениеФайла(ОписаниеОповещения,,
ИмяФайлаДляОбработки, Ложь,
УникальныйИдентификатор);
.

&НаКлиенте
Процедура ОбработатьФайлЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры)

.
Результат = ПроизвестиНачальнуюОбработкуНаСервере(Адрес);
ПродолжитьОбработкуФайла();
.

.
// Второй серверный вызов с той же версией файла
Результат = ПроизвестиПромежуточнуюОбработкуНаСервере(Адрес);
.

// Третий серверный вызов с новой версией файла
УдалитьИзВременногоХранилища(Адрес);

ОписаниеОповещения = Новый ОписаниеОповещения(
"ПродолжитьОбработкуФайлаЗавершение", ЭтотОбъект);

НачатьПомещениеФайла(ОписаниеОповещения,,
ИмяФайлаДляОбработки, Ложь,
УникальныйИдентификатор);

&НаКлиенте
Процедура ПродолжитьОбработкуФайлаЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры)

3. Если в конфигурацию встроена Библиотека стандартных подсистем для помещения файлов во временное хранилище необходимо использовать процедуры ЗагрузитьФайл и ЗагрузитьФайлы общего модуля ФайловаяСистемаКлиент . Для сохранения данных файла между несколькими серверными вызовами необходимо использовать свойство ИдентификаторФормы параметра ПараметрыЗагрузки :

&НаКлиенте
Процедура ОбработатьФайл()
.
ИмяФайлаДляОбработки = "C:\Файлы для обработки\Загрузка.xml";
ОписаниеОповещения = Новый ОписаниеОповещения("ОбработатьФайлЗавершение", ЭтотОбъект);

ПараметрыЗагрузки = ФайловаяСистемаКлиент.ПараметрыЗагрузкиФайла();
ПараметрыЗагрузки.ИдентификаторФормы = УникальныйИдентификатор;
ПараметрыЗагрузки.Интерактивно = Ложь;

ФайловаяСистемаКлиент.ЗагрузитьФайл(ОписаниеОповещения,
ПараметрыЗагрузки, ИмяФайлаДляОбработки);

&НаКлиенте
Процедура ОбработатьФайлЗавершение(ПомещенныйФайл, ДополнительныеПараметры)

При работе в онлайн-режиме иногда возникает ситуация, что документ Mobile SMARTS невозможно сохранить и (или) провести в информационной базе 1C.

Возможны два варианта данной проблемы:

  1. Документ записывается, но не проводится в интерактивном режиме (логические ошибки).
  2. Документ записывается и проводится в интерактивном режиме (технологические причины).

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

Общие сведения

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

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

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

Однако, возможны непрямые вызовы. Например, в 1С используется технология «подписки на события» — выполнение связанных процедур и функций 1С при наступлении некоторого события (например, записи документа). При этом возможно использование процедур и функций из общих модулей, которые недоступны во внешнем соединении, либо некоторые функции ведут себя по-разному при работе в режиме приложения и режиме внешнего соединения.

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

В поддерживаемых типовых и прочих конфигурациях 1С бизнес-процессы Mobile SMARTS проверяются на такие ситуации, и, как правило, все действия, производимые при записи/ проведении документа, доступны во внешнем соединении. Бывают исключения, но обычно они устраняются в следующих релизах.

Однако, если в ИБ 1С имеются изменения, используются расширения, то измененные или добавленные объекты могут быть недоступны во внешнем соединении. И это приводит к ситуации, когда документ в интерактивном режиме (через обработку обмена) успешно записывается и (или) проводится, а при работе в онлайн-режиме происходит ошибка, и документ в базу 1С не попадает (при этом он остается на сервере Mobile SMARTS).

При этом, так как возникает цепочка исключений, к пользователю на ТСД поступает только информация о том, что документ не записан/не проведен в базу 1С, без уточнения подробностей.

Некоторые рекомендации по поиску и устранению проблемы

Из описания видно, что универсального решения проблемы со стороны Mobile SMARTS быть не может, т.к. она вызвана особенностями конфигурации 1С: Mobile SMARTS вызывает метод документа «Записать», а в ответ получает исключительную ситуацию.

Иногда проблему можно решить, отказавшись (в настройках бизнес-процесса) от автоматического проведения документа. При простой записи объекта происходит меньше изменений в базе 1С, и, возможно, не будет обращения к проблемным модулям.

При этом нужно будет дополнительно проводить созданные или измененные документы (вручную, либо регламентным заданием и т. д.).

Но, как правило, для нормальной работы необходимо вносить изменения в конфигурацию 1С (основную, либо расширение).

Внимание! Изменение объектов основной конфигурации требует некоторых минимальных знаний и навыков!

Общая схема решения проблемы

  • найти объекты конфигурации 1С, которые недоступны во внешнем соединении, и сделать их доступными.
  • найти процедуры/ функции конфигурации 1С, которые по-разному работают в режиме приложения и внешнего соединения, и изменить их — напрямую, либо через расширение.

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

Если общий модуль находится в основной конфигурации, для него необходимо включить возможность изменения и установить режим «Редактируется с сохранением поддержки». В некоторых случаях требуется снять конфигурацию с поддержки (при этом нужно учитывать последствия).


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

Поиск проблемных объектов

В первую очередь необходимо посмотреть записи журнала регистрации для события «КлеверенсТСД». В типовых конфигурациях реализуется через меню «Сервис», либо «Все функции»

Как правило, в описании ошибки будет название общего модуля, либо название функции, процедуры, при обращении к которым было вызвано исключение. При этом текст ошибки может не указывать на действительную причину, например «Попытка передачи с клиента на сервер мутабельного значения» — в этом случае, вместо работы с объектом, недоступным в контексте внешнего соединения, происходит попытка обратится к серверу.

Если конфигурация доработанная или есть расширения — все новые общие модули, у которых стоит флаг «Сервер», но не стоит «Внешнее соединение» могут быть источником ошибки.

Если есть возможность запустить выполнение в режиме отладки, то можно определить момент возникновения ошибки.

В конфигураторе 1С нужно открыть обработку, указанную в настройках внешнего соединения в панели управления Mobile SMARTS:


Подключится к COM-процессу, запущенному Mobile SMARTS:


В момент завершения документа на ТСД вызывается функция модуля объекта обработки:

Непосредственно запись готового документа в базу 1С происходит в функции

Завершенный на ТСД документ в случае невозможности записи в 1С остается на сервере Mobile SMARTS, поэтому для повторной записи не нужно заново заполнять данные на ТСД, достаточно открыть и снова завершить документ Mobile SMARTS.

Завершенный документ по умолчанию не виден на ТСД, но его видимость можно включить через панель конфигурации MS, либо в разделе «Документы» снять флаг «Завершен» для нужного документа.

Методика отладки стандартная.

Если нужно, поставьте точку останова в начало функции

Но можно сразу в функции , на строках вида:

и на строках в блоках исключение, после строки

Так вы остановитесь в процессе отладки перед началом записи и в случае исключения.

Сначала выполняете строку записи документа через F10, и если при записи будет вызвано исключение, вы перейдете в блок «Исключение».

Получаете значение «ОписаниеОшибки», анализируете.

Если информации недостаточно, производим последовательный проход по всех вызовам.

Начиная со строки «Записать ()», последовательно «проваливаетесь» через F11 во все вызовы общих объектов и находите проблемный.

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

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

«Управление торговлей 11.4», «ERP: Управление предприятием», «Комплексная автоматизация»

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

В версии 13.51 данных конфигураций в свойствах общего модуля «РазборКодаМаркировкиИССлужебныйВызовСервера» необходимо проставить флаг «внешнее соединение» вручную.

Синхронизация с Битрикс24, Б24

Добавляется множество объектов с префиксом «СинхронизацияСБитрикс24_», «Б24_», у которых по умолчанию не установлен флаг «Внешнее соединение». Рекомендуется для всех объектов с флагом «Сервер» добавить также «Внешнее соединение».

Подсистема CRM

Аналогично предыдущему, множество общих модулей, префикс «CRM_», без флага «Внешнее соединение». Решение аналогично предыдущему.

Иногда внешне правильный код выполняется неверно, например сбрасывается ПривилегированныйРежим.

Пример: «Комплексная автоматизация», Модуль набора записей регистра сведений «РеестрДокументов»:

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

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

Управление небольшой фирмой 1.6

В типовой конфигурации 1С УНФ 1.6 нужно установить флаг «внешнее соединение» (если не установлен) для следующих общих модулей:

  • УправлениеНебольшойФирмойСобытия
  • УправлениеНебольшойФирмойСобытияПереопределяемый
  • РаботаСНоменклатуройКлиентСервер
  • РаботаСФормойДокумента
  • ОбменМобильноеПриложениеОбщее

Читайте также: