06.04.2016 14:49
Как я уже писал - при обновлении (да и потом, при попытке работать) выдавалась ошибка

Цитата:
{ОбщийМодуль.АдресныйКлассификаторСлужебный.Модуль(4765)}: Ошибка при вызове метода контекста (ЗначениеЗаполнено)
Если ЗначениеЗаполнено(Адрес.СвРайМО) Тогда
по причине:
Проверка мутабельных значений на заполненность не поддерживается
Сегодня решил сесть, поразбираться.
Делаю всё на копии.
Т.к. подключена 1с отчётность - то сначала отключаю интернет, потом отключаю все настройки обмена для 1с отчётности (не хочу я, что бы мне в копию приходили сообщения об удачной (или нет) сдачи отчётности).
Отключил, подключил интернет.

Запускаю обновление - и всё хорошо.
Нет этого сообщения об ошибке.
Ладно, чуть выше ставлю точку останова, пытаюсь работать (в том числе - исправляя адрес организации) - нет ошибок.
Ничего не понимаю.
Сегодня вечером опять буду пробовать обновлять боевую базу.



Попутно выяснил - эти "добрые люди" в очередной раз поменял структуру адресов для Зеленограда.
Исторически сложилось, что в Зеленограде идут в большинстве своём не улицы и дома, а микрорайоны и корпуса (корпуса с 3-4 значной нумерацией) - хотя какое-то количество улиц есть и у нас :).
Последние две цифры корпуса - уникальный номер в микрорайоне, а первая, или первые две - это номер "микрорайона" (основное территориальное деление в Зеленограде).
К примеру - корпус №200 - обозначает, что адрес относится ко 2-му микрорайону, а корпус №2001 - что к 20-му. Поэтому в адресе указывается только корпус, без указания микрорайона.
С самого начала, когда вводили КЛАДР - корпуса писались в поле "Корпус" (оставляя поле "дом" пустым), но буквально через месяц - стали писать в "Дом", а если у корпуса есть номер - то его уже писали в "Корпус".
Оказывается, теперь надо снова поле "Дом" оставлять пустым, а номер вносится в "Корпус" (если есть буква - то она, как правило, пишется слитно сразу за номером корпуса - во всяком случае так было в тех адресах, что я проверил).
07.04.2016 01:46
Продолжаю не понимать.
В базе два предприятия (одно из них - с проблемным ОКТМО)

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

Посмотрел повнимательнее, что представляет из себя Адрес.СвРайМО

По отладчику - это ОбъектXDTO (немного об XDTO ), содержащий два значенияXDTO
- район (тип строка, в значении - "")
- СвМО (тип неопределено, в значении - пусто)

При этом XML, из которой получается этот XDTO, имеет вид (в части СвРайМО)
<СвРайМО><Район/></СвРайМО>

Отключил в администрировании "Передачу данных данных" (Администрирование - Поддержка и обслуживание - Центр мониторинга - Запретить отправку сведений). Вроде бы ошибка ушла.
Завтра (опа, уже сегодня) буду смотреть - почему так преобразуется.

Вызов преобразования
Код:
	Если ЭтоКонтактнаяИнформацияВXML(Адрес) Тогда
		АдресXDTO = ДесериализацияАдресаXDTO(Адрес);
		Адрес = АдресXDTO.Состав.Состав;
	КонецЕсли;
Само по себе преобразование
Код:
// Десериализует объект из XML.
//
Функция ДесериализацияАдресаXDTO(Строка)
	ЧтениеXML = Новый ЧтениеXML;
	ЧтениеXML.УстановитьСтроку(Строка);
	
	Тип = ФабрикаXDTO.Тип(ПространствоИменАдресаРФ(), "АдресРФ");
	Результат = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
	
	Возврат Результат
КонецФункции

// Пространство имен для операций XDTO с адресом.
//
Функция ПространствоИменАдресаРФ()
	Возврат "http://www.v8.1c.ru/ssl/AddressSystem";
КонецФункции
07.04.2016 16:25
, хоть и с дурацким объяснением:

Цитата:
Описание:
Если есть сотрудники с адресами, в которых не предусмотрена улица, то при работе с различными документами и отчетами (2-НДФЛ, регистр налогового учета и т.д.) может возникать ошибка: {ОбщийМодуль.АдресныйКлассификаторСлужебный.Модуль(4765)}: Ошибка при вызове метода контекста (ЗначениеЗаполнено) Если ЗначениеЗаполнено(Адрес.СвРайМО) Тогда по причине: Проверка мутабельных значений на заполненность не поддерживается
Почему я считаю, что объяснение дурацкое:
Во-первых, это не только у сотрудников - а вообще у всех, во вторых - Адрес.СвРайМО не имеет никакого отношения к улицам, в третьих - действительно сравнение производится без проверки - а вообще-то имеем мы право это сравнивать или нет.

Ладно, я успокоился, жду обновлений.
07.04.2016 23:39
Не, всё же не успокоился :)

Так как 1с неизвестно когда выпустит обновления - завтра попробую с ключом "Отключение фоновых задания"
ключ для запуска
/AllowExecuteScheduledJobs –Off

Для памяти
Цитата:
/AllowExecuteScheduledJobs -Off|-Force — управление запуском регламентных заданий. Регламентные задания начинают выполняться на первом запущенном по порядку клиенте, у которого не AllowExecuteScheduledJobs –Off. После завершения сеанса этого клиента, выполнение переходит к какому-либо из других запущенных сеансов. Если запускается сеанс с AllowExecuteScheduledJobs –Force, то регламентные задания начинают выполняться на нем, не зависимо от наличия других сеансов.
08.04.2016 15:17
Продолжаю эпопею.

1с выпустило обновление (3.0.43.174), ошибка не исправлена.
Ключ с отключением фоновых (регламентных?) заданий - не помог.

Как же мне не хочется из-за этой глупости снимать с поддержки.
Но если до конца следующей недели не исправят - придётся.
15.04.2016 16:40
Данная эпопея - завершена с выпуском обновления до 3.0.43.187!
Уря!

Собственно, что поменяли
Код:
				Если ЗначениеЗаполнено(Адрес.СвРайМО) Тогда
					Результат.КодыКЛАДР.Район = Лев(КодКЛАДР, 5) + "00000000";
				КонецЕсли;
и - на что
Код:
				Район = ?(ПустаяСтрока(Адрес.СвРайМО), "", Адрес.СвРайМО.Район);
				Если ЗначениеЗаполнено(Район) Тогда
					Результат.КодыКЛАДР.Район = Лев(КодКЛАДР, 5) + "00000000";
				КонецЕсли;
Часовой пояс GMT +3, время: 14:28.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.