Типовые проблемы с внешней обработкой — различия между версиями

Материал из razgovorov.ru
Перейти к: навигация, поиск
(Проблемы при запуске обработки, связанные с конфигурацией 1С)
(Проблемы при запуске обработки, связанные с конфигурацией 1С)
Строка 54: Строка 54:
 
ИЗ
 
ИЗ
 
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
 
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
+
<strike>ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
         ПО РеализацияТоваровУслуг.Контрагент = ЗначенияСвойствОбъектов.Объект И ЗначенияСвойствОбъектов.Свойство.Наименование = "СБИС_СпособДоставки"
+
         ПО РеализацияТоваровУслуг.Контрагент = ЗначенияСвойствОбъектов.Объект И ЗначенияСвойствОбъектов.Свойство.Наименование = "СБИС_СпособДоставки"</strike>
 
ГДЕ  
 
ГДЕ  
 
((РеализацияТоваровУслуг.Дата МЕЖДУ &amp;ДатаНач И &amp;ДатаКон) ИЛИ (НЕ &amp;ЗначениеДатаКонЗаполнено И РеализацияТоваровУслуг.Дата &gt; &amp;ДатаНач))  
 
((РеализацияТоваровУслуг.Дата МЕЖДУ &amp;ДатаНач И &amp;ДатаКон) ИЛИ (НЕ &amp;ЗначениеДатаКонЗаполнено И РеализацияТоваровУслуг.Дата &gt; &amp;ДатаНач))  

Версия 16:29, 1 октября 2015

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

1. Проблема: Не хватает прав в Windows на регистрацию SDK

Как диагностировать: При запуске выдаются ошибки: «Не зарегистрирована ActiveX компонента SBIS.Docflow» или «Не удалось зарегистрировать новую версию ActiveX компоненты SBIS.Docflow», обработка закрывается.
Как решать: Системный администратор клиента должен дать пользователю права на регистрацию, либо сам зарегистрировать Sbis3SDK.dll (зайти на компьютер пользователя с правами администратора и запустить внешнюю обработку).

2. Проблема: Не хватает прав в Windows на сохранение файлов настроек в каталог

Как диагностировать: Выдается ошибка «Каталог настроек [Имя каталога] не доступен (с сервера для клиент-серверной версии)»
Как решать: Системный администратор клиента должен дать пользователю права на указанный каталог. Либо дать права на любой другой каталог и указать его в качестве каталога настроек на вкладке «Файлы настроек» в обработке. Внимание! Для клиент-серверной 1С, работающей в управляемом режиме, каталог указывается на сервере. То есть, если указан путь C:\Sbis1C – это локальный путь на сервере и именно туда надо дать доступ, либо указать какой-то сетевой каталог, который доступен с сервера.

3. Проблема: Не хватает прав в 1С на запуск обработки через меню «Файл/Открыть».

Как диагностировать: Выдается ошибка «Нарушение прав доступа», обработка не запускается.
Как решать: Администратор должен добавить обработку в список внешних обработок для данного пользователя, либо, если это возможно, добавить пользователю права «Дополнительное право открытия внешних отчетов и обработок».

4. Проблема: Нет доступа в интернет.

Как диагностировать: В окне авторизации выдается ошибка «Ошибка WinHTTP Не удается разрешить имя или адрес сервера»:
Как решать: Администратор должен сделать доступ в интернет либо, если доступ в интернет на данном компьютере не предполагается, переключаемся в режим работы «через каталог». Для этого нажимаем «Настройка соединения» и в открывшемся окне выбираем способ обмена «Каталог»:

Дополнительно устанавливаем и настраиваем СБИС Коннект.

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

1. Проблема: Конфигурация переименована

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

2. Проблема: В конфигурации отсутствует реестр документов

Как диагностировать: Выдается протокол проверки с ошибкой вида: «Неправильный текст запроса … Таблица не найдена «Документ.[Имя документа]»…».
Как решать: Так как данного реестра в конфигурации нет, то и отправлять такие документы в электронном виде не нужно, поэтому просто удаляем файл настроек с ошибкой.

3. Проблема: В конфигурации отсутствует регистр сведений для хранения статусов документов и способа доставки документов контрагенту.

Как диагностировать: Выдается протокол проверки с ошибкой вида: «Неправильный текст запроса … Таблица не найдена «РегистрСведений.[Имя регистра]»…»:


Как решать:
  • Исправляем ошибку в запросе в пользовательском файле настроек. Удаляем все левые соединения, в которых указан данный регистр сведений и все поля и условия, связанные с регистром:
ВЫБРАТЬ РАЗРЕШЕННЫЕ 
	РеализацияТоваровУслуг.Ссылка, 
	РеализацияТоваровУслуг.Проведен, 
	РеализацияТоваровУслуг.ПометкаУдаления, 
	РеализацияТоваровУслуг.Дата, 
	РеализацияТоваровУслуг.Номер, 
	РеализацияТоваровУслуг.Контрагент.Наименование КАК Контрагент, 
	РеализацияТоваровУслуг.Организация.Наименование КАК Организация,
	ВЫРАЗИТЬ(РеализацияТоваровУслуг.Комментарий КАК СТРОКА(1000)) КАК Комментарий,
	РеализацияТоваровУслуг.Склад.Наименование КАК Склад,
	РеализацияТоваровУслуг.СуммаДокумента
ПОМЕСТИТЬ ВТ_Реализация 
ИЗ 	
	Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг 	
	<strike>ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
        ПО РеализацияТоваровУслуг.Контрагент = ЗначенияСвойствОбъектов.Объект И ЗначенияСвойствОбъектов.Свойство.Наименование = "СБИС_СпособДоставки"</strike>	
ГДЕ 
	((РеализацияТоваровУслуг.Дата МЕЖДУ &amp;ДатаНач И &amp;ДатаКон) ИЛИ (НЕ &amp;ЗначениеДатаКонЗаполнено И РеализацияТоваровУслуг.Дата &gt; &amp;ДатаНач)) 
	И ((РеализацияТоваровУслуг.Контрагент = &amp;Контрагент) ИЛИ (РеализацияТоваровУслуг.Контрагент В Иерархии(&amp;Контрагент)) ИЛИ (НЕ &amp;ЗначениеКонтрагентЗаполнено)) 
	И ((РеализацияТоваровУслуг.Организация = &amp;ТекущаяОрганизация) ИЛИ (НЕ &amp;ЗначениеТекущаяОрганизацияЗаполнено))
	И ((РеализацияТоваровУслуг.Ссылка = &amp;ТекущийДокумент)  ИЛИ (НЕ &amp;ЗначениеТекущийДокументЗаполнено))
	И (&amp;КонтрагентПодключен="" ИЛИ &amp;КонтрагентПодключен=ЗначенияСвойствОбъектов.Значение.Наименование)
	И (&amp;Ответственный=Значение(Справочник.Пользователи.ПустаяСсылка) ИЛИ &amp;Ответственный=РеализацияТоваровУслуг.Ответственный)
	И НЕ РеализацияТоваровУслуг.ПометкаУдаления;
ВЫБРАТЬ 
	ВТ_Реализация.Ссылка КАК Документ,
	ВТ_Реализация.Проведен КАК ДокументПроведен,
	ВТ_Реализация.ПометкаУдаления КАК ДокументПометкаУдаления, 
	ВТ_Реализация.Дата КАК ДатаДокумента, 	
	ВТ_Реализация.Номер КАК НомерДокумента, 
	ВТ_Реализация.Контрагент КАК Контрагент, 
	ВТ_Реализация.Организация КАК Организация,
	ВТ_Реализация.Комментарий КАК Комментарий,
	ВТ_Реализация.Склад КАК Склад,
	ВТ_Реализация.СуммаДокумента КАК СуммаДокумента, 
	СвязьДокументов.Ссылка КАК Приложение, 
	СвязьДокументов.Ссылка.СуммаДокумента КАК СуммаПриложения, 
	СвязьДокументов.Ссылка.Дата КАК ДатаПриложения, 
	СвязьДокументов.Ссылка.Номер КАК НомерПриложения,
	ЗначенияСвойствОбъектов.Значение КАК СтатусЭД
ИЗ 
	ВТ_Реализация 
	ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураВыданный.ДокументыОснования КАК СвязьДокументов
	ПО ВТ_Реализация.Ссылка = СвязьДокументов.ДокументОснование
	ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
	ПО ВТ_Реализация.Ссылка = ЗначенияСвойствОбъектов.Объект И ЗначенияСвойствОбъектов.Свойство.Наименование = "ДокументСБИС_Статус" 
УПОРЯДОЧИТЬ ПО
	ДатаДокумента, НомерДокумента
  • Указываем, что статусы документов будут храниться в dbf-файле. Для этого из файла настроек конфигурации выносим в пользовательский файл настроек параметр «ФормаРаботыСоСтатусами»:
<?xml version="1.0" encoding="utf-8"?>
<ини>
	<ФормаРаботыСоСтатусами>'Статусы_ДБФ'</ФормаРаботыСоСтатусами>
</ини>

4. Проблема: Не все реквизиты хранятся там, где нужно

Как диагностировать: Выдается протокол проверки со списком ненайденных реквизитов и справочной информацией.
Например, не найден реквизит «ДоговорКонтрагента» в документе «РеализацияТоваровУслуг»:
Как решать: В справочной информации или в конфигурации (если есть доступ) смотрим, где лежат ненайденные значения.
В протоколе проверки ищем таблицу РеализацияТоваровУслуг (в тексте ошибки указано название таблицы доступных реквизитов). В таблице ищем реквизит по смыслу похожий на "ДоговорКонтрагента".
Видим, что есть реквизит "Договор". В пользовательском файле настроек вместо параметра [Документ]. ДоговорКонтрагента пишем [Документ].Договор.

Проблемы после запуска обработки

  1. Проблема: Выгружаются неправильные значения

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

Как решать: Ищем нужное значение в карточке документа (либо в карточках, которые можно открыть из документа – карточка Организации, Контрагента, Договора и т.д.). В нашем случае открываем карточку организации, т.к. поставщик в случае реализации – это наша организация:


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

Видим, что тип значения данного поля – справочник Организации. • Находим в конфигурации справочник Организации и открываем форму элемента. В форме смотрим свойства поля, в котором лежит нужное нам наименование:

Видим, что данные в этом поле заполняются из реквизита «НаименованиеСокращенное». • Создаем пользовательский файл настроек для выгрузки реализации и выносим туда параметр с наименованием организации: <?xml version="1.0" encoding="utf-8"?> <ини> <мФайл Имя="ЭДОНакл"> <мСторона Имя="Отправитель"> <Сторона_Наименование>[Сторона].НаименованиеСокращенное</Сторона_Наименование> </мСторона> </мФайл> </ини> Структура вложенности узлов должна быть соблюдена, как в основном файле настроек.

  1. Проблема: Нужна дополнительная информация в документе

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

  • ИнфШапка - значение параметра отображается в шапке документа
  • ИнфПередТабл - значение параметра отображается перед табличной частью документа
  • ИнфПослеТабл - значение параметра отображается после табличной части документа
  • ИнфПодвал - значение параметра отображается в подвале документа

Таким образом решить проблему без изменения визуализации мы можем только в случае, если дополнительная информация в печатной форме клиента выводится в одном из перечисленных мест. Например, клиент хочет в счет-фактуре перед табличной частью видеть название договора. В каком реквизите хранится это название, определяем так же, как в п.1 определяли наименование организации. В этом случае в пользовательский файл настроек добавляется параметр "ИнфПередТабл": <?xml version="1.0" encoding="utf-8"?> <ини>

   <мФайл Имя="СчФктр">
       <мПараметр Имя="ИнфПередТабл">
            <Параметр_Имя>'ИнфПередТабл'</Параметр_Имя>
            <Параметр_Значение>[Договор].Наименование</Параметр_Значение>
       </мПараметр>
   </мФайл>

</ини> В результате получим:

  1. Проблема: Нужна своя визуализация документа.

Как диагностировать: Печатная форма документа в 1С сильно отличается от нашей и клиент настаивает, что стандартная форма не подходит. Как решать: Заказываем визуализацию в отделе внедрения ЭДО. По готовности добавляем в пользовательский файл настроек идентификатор визуализации в параметр Файл_КодФормы: <?xml version="1.0" encoding="utf-8"?> <ини>

   <мФайл Имя="СчФктр">
            <Файл_КодФормы>’СФВодоканал’</ Файл_КодФормы >
   </мФайл>

</ини> Идентификатор записывается в одинарных кавычках.

  1. Проблема: Медленно работает отправка через SDK.

Как диагностировать: Клиента не устраивает скорость отправки большого количества документов. Как решать: На вкладке Настройки в обработке указываем способ обмена «Каталог». Устанавливаем и настраиваем СБИС Коннект. Каталог обмена, указанный в обработке должен соответствовать рабочему каталогу СБИС Коннекта. В настройках СБИС Коннекта необходимо указать формат «Документ (*.native.xml)» для исходящих документов, входящих и статусов:

  1. Проблема: Нет драйвера для работы с dbf - файлами, используемого по умолчанию (Microsoft dBASE Driver).

Как диагностировать: При открытии полученных документов возникает ошибка: «Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers):[Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию». Как решать: Драйвер используется при работе с DBF-файлами, в которых хранится сопоставление номенклатуры (нашей и контрагента). Есть два варианта решения проблемы: • При наличии другого драйвера прописать строку подключения в пользовательском файле настроек конфигурации. Например: <СтрокаПодключенияДБФ>'Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties="DBASE IV;";Data Source='</СтрокаПодключенияДБФ> В процессе работы обработка к этой строке в конце дописывает путь к каталогу с нужным dbf-файлом, в результате получается полная строка подключения, например: 'Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties="DBASE IV;";Data Source=C:\Sbis1C\НоменклатураПоставщика\6000000001\' Наличие драйверов можно посмотреть в меню «Пуск/Панель управления/Администрирование/Источники данных ODBC» • Если нет подходящего драйвера, то можно воспользоваться штатными местами для хранения сопоставления номенклатуры в 1С. В зависимости от конфигурации это может быть регистр сведений «НоменклатураКонтрагентов» или справочник «НоменклатураПоставщиков». Чтобы переключить хранение сопоставления номенклатуры с DBF на регистр или справочник, выносим в пользовательский файл настроек конфигурации параметр «ФормаРаботыСНоменклатуройПоставщика». Если в конфигурации присутствует регистр сведений «НоменклатураКонтрагентов», то указываем форму работы «СопоставлениеНоменклатуры_Регистры»: <ФормаРаботыСНоменклатуройПоставщика>'СопоставлениеНоменклатуры_Регистры'</ФормаРаботыСНоменклатуройПоставщика> Если в конфигурации присутствует справочник «НоменклатураПоставщиков», то указываем форму работы «СопоставлениеНоменклатуры_Справочники»: <ФормаРаботыСНоменклатуройПоставщика>'СопоставлениеНоменклатуры_Справочники’</ФормаРаботыСНоменклатуройПоставщика> Понять, какую из двух форм указать, можно не открывая конфигурацию 1С, а по параметру «НоменклатураПоставщиков» в стандартном файле настроек конфигурации. В этом параметре указана либо ссылка на регистр сведений, либо ссылка на справочник.