1с ошибка при вызове конструктора структура

ошибка при формировании формы 2 ☑ 0

nany11

12.07.13

02:07

Подскажите что делать поставила новое обновление по Бух учету и при формировании отчета о финансовом положении возникает ошибка

{Обработка.БухгалтерскиеИтоги.МодульОбъекта(353)}: Ошибка при вызове конструктора (Структура)

       Группировки = Новый Структура(Группировки, Значение1, Значение2, Значение3, Значение4, Значение5, Значение6, Значение7, Значение8, Значение9);

по причине:

Несоответствие типов (параметр номер ‘1’)

1

Cube

12.07.13

04:40

(0) «поставила новое обновление по Бух учету»

Сразу видно — не специалист…

Ну рассказывай как обгонял, как подрезал…

Или ты считаешь, что тут одни телепаты и они уже знают, какая у тебя конфа, её релиз до обновления и после обновления?

2

nany11

12.07.13

04:51

Извините, была 1с Бухгалетрия Базовая 2.0.49.11, а сейчас 2.0.49.8

3

nany11

12.07.13

04:51

точнее сейчас 2.0.49.15

4

nany11

12.07.13

17:50

Не удели никто не знает как поправить?

5

BlackJack

22.07.13

14:29

Зайдите в базу версией 8.2, а не 8.3.

Ошибка «Задано неправильное имя атрибута структуры»

Ошибка возникает при попытке добавления элемента в структуру с некорректным идентификатором.

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

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

Задано неправильное имя атрибута структуры при проведении документа.

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

  • Скопировать ссылку
  • Перейти

то ошибка будет всегда , при попытке обратится к недобавленному свойству?

Может я не прав?

  • Скопировать ссылку
  • Перейти

к ошибке не приводит
а этот

  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

(5) А раньше могло работать если выполнялось только это

А сейчсас ушло в ИНАЧЕ
А там пустая структура без единого ключа ПредДанные
И ясно что выскакивает ошибка при попытке обратиться к несуществующим ключам структуры

  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

Вы сами писали этот код?
Что-то мне подсказывает что нет, раз вы не видите вот этого

  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

(17) Вы поставить точку остановки и посмотрите какое значение передается в переменной Назв. Скорее всего у вас или не определено или наименование, например с тире или другим каким то не допустимым символов

Вот тут отладку сделаейте
<Документ.ПриходУход2.МодульОбъекта(30)>: Ошибка при вызове метода контекста (Свойство)
Если ПредДанные.Свойство(Назв) Тогда
по причине:
Задано неправильное имя атрибута структуры
Задано неправильное имя атрибута структуры

  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

Погорячился насчет совсем.
В отладке посмотрите что в этой строке имеете в Назв

Задано неправильное имя атрибута структуры: почему не запускается

Дорогие читатели Мир Доступа! Вместе — мы сила! Вместе — мы легион! Если каждый из Нас переведет хотя бы один рубль мы сможем оплатить услуги корректора и хостинг на год вперед! Мы также сможем поднять зарплату нашим постоянным авторам и эффективнее поощрять их работу! Мы высоко ценим труд наших авторов!

Мы хотим радовать Вас и дальше! Благодаря Вам наш проект продолжает оставаться независимым и полезным. Без Ваших пожертвований мы бы никогда не справились. Спасибо Вам и низкий поклон!

С Уважением, главный редактор Мир Доступа

Сообщение задано неправильное имя атрибута структуры часто возникает при попытке добавить элемент в структуру с неверным идентификатором.

В соответствии с описанием по методу «Структура — Insert ()»,идентификатор должен включать в себя в своё уникальное содержание, допускается наличие исключительно букв/цифр/подчеркивания.

Следует помнить о том, что всегда первым символом ключа, непременно, должна быть либо буква, либо знак подчеркивания

Вполне возможно, что строка имеет недопустимые символы, тогда стоит их найти самостоятельно либо при помощи инструмента «Report ()» (Сообщить). Скорее всего проблема задано неправильное имя атрибута структуры будет решена.

Приведем пример ключа с применением метода «Insert ()»:

Следует рассмотреть и найти требуемое место с помощью идентификатора, который используется для настройки работоспособности.

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

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

Ошибка задано неправильное имя атрибута структуры 1с 8.3: полезные советы

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

Поэтому, в первую очередь, прежде чем углубляться в полную отладку, необходимо перейти на версию 3.1.10 и только после неё попробовать перейти на новую сборку.

Ошибки 1с 8.3 — неправильное имя атрибута

Ошибки в правилах действительно могут возникнуть — дело в том, что оболочка находилась в ZUP старых версий, а после на 3.1.10 никаких ошибок и нареканий не поступало.

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

В некоторых случаях можно перенести другую (даже постороннюю) базу данных в ZUP, к примеру — до версии 3.1.71.77. Сообщение задано неправильное имя атрибута структуры 1с 8.3 в этих случаях также может возникнуть.

Следует помнить, что в заголовках и тексте символы не допускаются. Примечание: всегда решаем задачу с учётом специфики программы. Например — требуется вставить 1/4 ставки. В этом случае необходимо написать строчными буквами «ЧЕТВЕРТЬ СТАВКИ»

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

Что-то сломалось или не работает? Расскажите нам о своей проблеме с ТВ, смартфоном, приложением или другим устройством и мы решим её — пишите свой вопрос в комментариях к этой статье, либо — на электронную почту capatob.homep@gmail.com — мы обязательно ответим на Ваш вопрос и решим его в течении одной недели. Для наших постоянных читателей скоро будем проводить блиц с необычными призами — следите за сайтом каждый день.

Понравилась статья? Поддержите наш IT-журнал любым удобным способом! Пока что мы держимся на чистом энтузиазме, но зато не делаем заказных обзоров 🙂

Лис Локи

02.02.12 — 07:46

Здравствуйте. При настройке 1С «Предприятие» возникла следующая проблема: при попытке «Обмена данными» (Обмен даннымиВыгрузка счетов на оплатуЗагрузка взаиморасчетов с клиентам) появляется вот такое сообщение:

Недопустимое значение параметра (параметр номер ‘1’)

Процедура СформироватьТекстЗапросаИПолучитьЗагруженныеОбороты()

                       

   СКД = ПолучитьИзВременногоХранилища(АдресСКД);    // Отладчик ругается на эту строку.

   УстановитьПоляОтбораПоСКД(СКД);

   

   КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СКД));

   КомпоновщикНастроек.ЗагрузитьНастройки(СКД.НастройкиПоУмолчанию);

   КомпоновщикНастроек.Восстановить();

   

   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

   МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СКД,

          КомпоновщикНастроек.ПолучитьНастройки(), , ,

          Тип(«ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений»));

   

   ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;

   ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);

   

   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;

   ТаблицаРезультатаКомпановки = ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

   

   ПостроительЗапроса = Новый ПостроительЗапроса();

   Источник = Новый ОписаниеИсточникаДанных(ТаблицаРезультатаКомпановки);

   ПостроительЗапроса.ИсточникДанных = Источник;

   ПостроительЗапроса.Выполнить();

   
   РезультатЗапроса = ПостроительЗапроса.Результат.Выбрать();

   

   Если НЕ СохранятьИзмененияПользователя Тогда

       Объект.Реализация.Очистить();

       Объект.Оплата.Очистить();

   Иначе

       мТаблицаОплат = Объект.Оплата.Выгрузить();

       Объект.Оплата.Очистить();

   КонецЕсли;

   
   Пока РезультатЗапроса.Следующий() Цикл

       

       Если НЕ СохранятьИзмененияПользователя Тогда

           Если РезультатЗапроса.ВидыДвиженийПриходРасход = Перечисления.CRM_ВидыДвиженийПриходРасход.Приход Тогда

               НоваяСтрока = Объект.Реализация.Добавить();

           ИначеЕсли РезультатЗапроса.ВидыДвиженийПриходРасход = Перечисления.CRM_ВидыДвиженийПриходРасход.Расход Тогда

               НоваяСтрока = Объект.Оплата.Добавить();

           КонецЕсли;

           ЗаполнитьЗначенияСвойств(НоваяСтрока, РезультатЗапроса);

           ДобавитьСвязанныеДокументы(РезультатЗапроса, РезультатЗапроса.ВидыДвиженийПриходРасход);

       Иначе // Скорректируем ТЧ Оплаты, т.к. в реализации было удаление строки

           Если РезультатЗапроса.ВидыДвиженийПриходРасход = Перечисления.CRM_ВидыДвиженийПриходРасход.Расход Тогда

               НоваяСтрока = Объект.Оплата.Добавить();

               ЗаполнитьЗначенияСвойств(НоваяСтрока, РезультатЗапроса);

               

               МассивСтрок = мТаблицаОплат.НайтиСтроки(Новый Структура(«ИдентификаторДокумента, ИдентификаторКорДокумента»,РезультатЗапроса.ИдентификаторДокумента,РезультатЗапроса.ИдентификаторКорДокумента));

               Если НЕ МассивСтрок.Количество() = 0 Тогда

                   НоваяСтрока.Счет = МассивСтрок[0].Счет;

               КонецЕсли;

           КонецЕсли;

       КонецЕсли;

       
   КонецЦикла;

   

   Если НЕ мВремТаблицаРеализации.Количество() = 0 Тогда

       Для Каждого СтрокаРеализации ИЗ Объект.Реализация Цикл

           СтрокаТЗ = мВремТаблицаРеализации.Найти(СтрокаРеализации.ИдентификаторДокумента, «ИдентификаторДокумента»);

           Если НЕ СтрокаТЗ = Неопределено Тогда

               СтрокаРеализации.Счет = СтрокаТЗ.Счет;

           КонецЕсли;

       КонецЦикла;

   КонецЕсли;

   

   Если НЕ мВремТаблицаОплаты.Количество() = 0 Тогда

       Для Каждого СтрокаОплаты ИЗ Объект.Оплата Цикл

           МасивСтрок = мВремТаблицаОплаты.НайтиСтроки(Новый Структура(«ИдентификаторДокумента, ИдентификаторКорДокумента», СтрокаОплаты.ИдентификаторДокумента, СтрокаОплаты.ИдентификаторКорДокумента));

           Если НЕ МасивСтрок.Количество() = 0 Тогда

               СтрокаОплаты.Счет = МасивСтрок[0].Счет;

           КонецЕсли;

       КонецЦикла;

   КонецЕсли;

   
КонецПроцедуры

Служебные сообщения:

{Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения(154)}: Ошибка при вызове метода контекста (ПолучитьИзВременногоХранилища)

   СКД = ПолучитьИзВременногоХранилища(АдресСКД);    

Недопустимое значение параметра (параметр номер ‘1’)

Прошу, помогите как можно скорее. Сам я в 1С лишь скромный эникейщик.

Рэйв

1 — 02.02.12 — 07:51

АдресСКД — не строка.

Лис Локи

2 — 02.02.12 — 07:52

Ну, на этот кусок. В общем курсор он там останавливает.

Рэйв

3 — 02.02.12 — 07:54

(2)Я тебе сказал почему ошибка. А почему АдресСКД  не строка это только отлажчиком на месте определишь.

Лис Локи

4 — 02.02.12 — 07:56

О, понял. Мда, глупо получилось.

Как это поглядеть примерно?

dva1c

5 — 02.02.12 — 08:03

(4) На строке «СКД = ПолучитьИзВременногоХранилища(АдресСКД)» в конфигураторе, делаешь точку останова (F9 и «красная» точка). Потом в предприятии запускаешь. Когда доходит до этого места происходит переключение в конфигуратор на точку останова. Выделяешь «АдресСКД» и нажимаешь Shift+F9.

В результате видишь табло, где все показано.

Анализируешь, поправляешь и пытаешь снова, пока не исправишь.

dva1c

6 — 02.02.12 — 08:09

*(5) пытаешься

Лис Локи

7 — 02.02.12 — 08:11

Результат:

Шарады какие-то.

Рэйв

8 — 02.02.12 — 08:14

(7)Ну значит пустое значение у него тоже считается недопустимым параметром. Что в принципе логично

Лис Локи

9 — 02.02.12 — 08:19

Слава богу, «» — не является очередным извращением языка, а то я уже испугался.

Ок, как посмотреть, где оно задается? (код не мой, естественно).

Гефест

10 — 02.02.12 — 08:20

(9) Вот в коде и смотри, где ей присваивается значение

Лис Локи

11 — 02.02.12 — 08:23

То ли это я сродни дереву, то ли в коде выше оно просто не упоминается ни разу.

Гефест

12 — 02.02.12 — 08:25

(11) Может быть это реквизит обработки?

Лис Локи

13 — 02.02.12 — 08:32

Т.е.?

Вообще, связанная с СКД в коде выше только эта процедура:

Процедура УстановитьПоляОтбораПоСКД(СКД)

   

   ПолеОрганизация                    = Новый ПолеКомпоновкиДанных(«Организация»);

   ПолеКонтрагент                    = Новый ПолеКомпоновкиДанных(«Контрагент»);

   ПолеОсновнойМенеджерПокупателя    = Новый ПолеКомпоновкиДанных(«ОсновнойМенеджерПокупателя»);

   

   Организация                    = Справочники.Организации.ПустаяСсылка();

   Контрагент                    = Справочники.Контрагенты.ПустаяСсылка();

   ОсновнойМенеджерПокупателя    = Справочники.Пользователи.ПустаяСсылка();

   

       
   Для Каждого Отбор Из СКД.НастройкиПоУмолчанию.Отбор.Элементы Цикл

       Если (Отбор.ЛевоеЗначение = ПолеОрганизация) И Отбор.Использование Тогда

           Организация = Отбор.ПравоеЗначение;

       ИначеЕсли (Отбор.ЛевоеЗначение = ПолеКонтрагент) И Отбор.Использование Тогда

           Контрагент = Отбор.ПравоеЗначение;

       ИначеЕсли (Отбор.ЛевоеЗначение = ПолеОсновнойМенеджерПокупателя) И Отбор.Использование Тогда

           ОсновнойМенеджерПокупателя = Отбор.ПравоеЗначение;

       КонецЕсли;

   КонецЦикла;

   
КонецПроцедуры

Гефест

14 — 02.02.12 — 08:35

(13) В обработке на закладке Данные есть АдресСКД или нет?

Гефест

15 — 02.02.12 — 08:35

Среди реквизитов то есть?

Лис Локи

16 — 02.02.12 — 08:38

В «Обработке», которая в окне «Конфигурация» — вроде нет.

dva1c

17 — 02.02.12 — 08:41

(16) Т.е. хочешь сказать: Обработки -> «Твоя обработка» -> реквизиты — пусто?

Значит надо добавлять реквизит, который надо заполнять.

Галахад

18 — 02.02.12 — 08:42

(17) А чего туда писать?

Лис Локи

19 — 02.02.12 — 08:43

Собственно да, предугадал вопрос.

Fish

20 — 02.02.12 — 08:44

(16) А может это реквизит формы?

dva1c

21 — 02.02.12 — 08:45

(18) Исходишь из логики: для чего нужна обработка? Что нужно получить для построения отчета? Пытаешься понять для чего нужен этот «АдресСКД»?

dva1c

22 — 02.02.12 — 08:46

(21) -> (19)

(20) Верно построенное предположение. +1

Лис Локи

23 — 02.02.12 — 08:50

Да вроде и там (Общиеобщие формы) ничего такого не наблюдается.

Мда. Отчет-обработка.

> для чего нужен этот «АдресСКД»?

Понятия не имею, честно говоря.

Я имею ввиду, я даже не предполагаю, как он ДОЛЖЕН выглядеть.

dva1c

24 — 02.02.12 — 08:54

(23) Отчет готовый есть? Что он должен формировать? Неужели не знаешь?

Лис Локи

25 — 02.02.12 — 08:57

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

(Ведомость и остатки). Есть пример, да.

dva1c

26 — 02.02.12 — 09:01

(25) Уже не так все плохо. Копай дальше. )

Fish

27 — 02.02.12 — 09:03

(23) А глобальный поиск по конфе твоего «АдресСКД» делал?

Лис Локи

28 — 02.02.12 — 09:05

>А глобальный поиск по конфе твоего «АдресСКД» делал?

Нет, конечно, ибо 1С изучал «давно и не правда». Как?

dva1c

29 — 02.02.12 — 09:06

(28) )) Иконку «Папка с биноклем» видишь? Если — да, то это «Глобальный поиск».

Лис Локи

30 — 02.02.12 — 09:10

«Есть папка с увеличительным стеклом», жмакнул, вот что нашло:

Поиск строки «АдресСКД»…

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(154, 38) : СКД = ПолучитьИзВременногоХранилища(АдресСКД);

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1095, 38) : СКД = ПолучитьИзВременногоХранилища(АдресСКД);

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1139, 2) : АдресСКД = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор);

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1148, 38) : СКД = ПолучитьИзВременногоХранилища(АдресСКД);

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1175, 2) : АдресСКД = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор);

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1274, 21) : Новый Структура(«АдресСКД»,АдресСКД));

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1274, 31) : Новый Структура(«АдресСКД»,АдресСКД));

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1277, 3) : АдресСКД = Результат.АдресСКД;

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1277, 24) : АдресСКД = Результат.АдресСКД;

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(270, 38) : СКД = ПолучитьИзВременногоХранилища(АдресСКД);

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(277, 2) : АдресСКД = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор);

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(290, 2) : АдресСКД = Параметры.АдресСКД;

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(290, 23) : АдресСКД = Параметры.АдресСКД;

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(292, 38) : СКД = ПолучитьИзВременногоХранилища(АдресСКД);

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(296, 52) : Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСКД)

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(313, 30) : СтруктураВозврата.Вставить(«АдресСКД», АдресСКД);

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(313, 41) : СтруктураВозврата.Вставить(«АдресСКД», АдресСКД);

Найдено вхождений: 17

dva1c

31 — 02.02.12 — 09:12

(30) Лениво анализировать то, что ты тут постишь. Самому очень тяжело?

Fish

32 — 02.02.12 — 09:13

(30) Ну вот же:

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1277, 3) : АдресСКД = Результат.АдресСКД;

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1277, 24) : АдресСКД = Результат.АдресСКД;

Вот и смотри там, как этот АдресСКД получается, и для чего нужен :)))

Лис Локи

33 — 02.02.12 — 09:14

Проблема в том, что для меня это в основном китайские иероглифы.

Точнее русские, но от этого только грустнее.

Ок, посмотрим-с.

Fish

34 — 02.02.12 — 09:15

(33) Тогда может тебе стоит забить на это, и позвать уже специалиста? :))))

Лис Локи

35 — 02.02.12 — 09:15

Процедура Настройки(Команда)

   

   Результат = ОткрытьФормуМодально(

       «Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки»,

           Новый Структура(«АдресСКД»,АдресСКД));

   

   Если Результат <> Неопределено Тогда

       АдресСКД = Результат.АдресСКД;

       СформироватьТекстЗапросаИПолучитьЗагруженныеОбороты();

       Модифицированность = Истина;

   КонецЕсли;

   
КонецПроцедуры

Лис Локи

36 — 02.02.12 — 09:17

Цитируя мою начальницу «Я всё равно бы тыкалась по интернету, как и ты, а так хотя бы время свободное будет».

Собственно, сам-то я не сильно пряморукий писатель сайтов, но лучше у них просто нет.

dva1c

37 — 02.02.12 — 09:25

(34)+100500 ))

Лис Локи

38 — 02.02.12 — 09:32

>Если Результат <> Неопределено Тогда

Это вообще норма?

alxxsssar

39 — 02.02.12 — 09:33

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

Лис Локи

40 — 02.02.12 — 09:35

Хм, кажется в общих формах формы «CRM_ОбменДаннымиС1СБухгалтерия» просто нет.

alxxsssar

41 — 02.02.12 — 09:43

Где-то должен быть такой реквизит.

Лис Локи

42 — 02.02.12 — 09:45

Есть поиск по ним?

extrim-style

43 — 02.02.12 — 09:45

(40) это не в общих формах — это в обработках

Лис Локи

44 — 02.02.12 — 09:48

Ага, нашел.

Нет, у неё только реквизиты НачалоПериода, КонецПериода, УниверсальныйОбменДанными, ИмяФайлаОбмена, ДатаВыгрузкиДанных.

extrim-style

45 — 02.02.12 — 09:53

(44) есть реквизиты обработки, которую ты открываешь, а есть реквизиты формы — открываешь в этой обработке ФормуНастройки и переходишь на вкладку реквизиты.

extrim-style

46 — 02.02.12 — 09:54

(0) интересно, какого характера была «настройка». Может проще оттуда топать?

Лис Локи

47 — 02.02.12 — 09:56

Ага, открыл. Есть.

Лис Локи

48 — 02.02.12 — 09:57

Между объектом и компоновщиком настроек, тип «Строка».

Лис Локи

49 — 02.02.12 — 10:12

И куда дальше тыкаться, добрые люди?

dva1c

50 — 02.02.12 — 10:16

(49) Все ушли на обед. Я тоже скоро ухожу. )

extrim-style

51 — 02.02.12 — 10:16

(49) в (0) в реквизитах формы есть АдресСКД?

Лис Локи

52 — 02.02.12 — 10:18

Да, есть!

offtop: Что ли самому потом пойти?

extrim-style

53 — 02.02.12 — 10:22

(52) открой модуль этой формы. Встань в самое начало и по Ctrl+F поищи АдресСКД. Место, где АдресСКД присваивается значение — «АдресСКД = …»

alxxsssar

54 — 02.02.12 — 10:24

в пользовательской открой и посмотри, он заполнен?

Лис Локи

55 — 02.02.12 — 10:25

> открой модуль этой формы

Как, добрая душа?

Лис Локи

56 — 02.02.12 — 10:30

>открой модуль этой формы

Ага, нашел, затупил, простите.

Лис Локи

57 — 02.02.12 — 10:32

АдресСКД = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор);

Вот это?

extrim-style

58 — 02.02.12 — 10:36

(57) поставь точку останова на этой строчке и посмотри заполнение параметра СКД.

Лис Локи

59 — 02.02.12 — 10:39

> поставь точку останова на этой строчке

*тык F9* done!

>посмотри заполнение параметра СКД

Эм, поясни пожалуйста.

extrim-style

60 — 02.02.12 — 10:47

(59) смотри (5)

  

Лис Локи

61 — 02.02.12 — 10:56

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

И табло не вызывается по шифт+f9 теперь.

extrim-style

62 — 02.02.12 — 11:11

(61) варианты — конфигуратор закрыт. Если открыт — переоткрой всё снова, и поставь точку в этой строке. Если не заходит, поставь точку выше. Возможно (57) находится в другой процедуре и нужно поискать другое присвоение АдресСКД и там уже ставить точку и смотреть. Если ни то, ни другое — курить, почему не заходит в эту процедуру.

Лис Локи

63 — 02.02.12 — 11:18

> Если ни то, ни другое — курить, почему не заходит в эту процедуру.

А возможно ли это закомментить и написать свое, аналогичное? Я имею ввиду, насколько там большая простыня должна быть?

extrim-style

64 — 02.02.12 — 11:26

(63) прежде чем что-то писать, нужно знать что писать.

лучше вспомнить, что в (0) настраивали

Лис Локи

65 — 02.02.12 — 11:29

По идее — форму для «Загрузки взаиморасчетов с клиентам».

extrim-style

66 — 02.02.12 — 11:38

(65) Если больше присвоения АдресСКД в форме нет, то тогда в (57) смотри присвоение СКД, т.к. скорей всего что-то не присваивается. В какой процедуре находится?

Лис Локи

67 — 02.02.12 — 11:44

(57) находится в «Сохранить настройки»:

Процедура СохранитьНастройки()

   КомпоновщикНастроек.Восстановить();

   СКД = ПолучитьИзВременногоХранилища(АдресСКД);

   НастройкиСКД          = СКД.НастройкиПоУмолчанию;

   НастройкиКомпоновщика = КомпоновщикНастроек.ПолучитьНастройки();

   ОчиститьНастройкиКомпоновкиДанных(НастройкиСКД);

   СкопироватьНастройкиКомпоновкиДанных(НастройкиСКД, НастройкиКомпоновщика);

   АдресСКД = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор);

КонецПроцедуры

extrim-style

68 — 02.02.12 — 11:53

(68) по Ctrl+F сделай поиск в модуле СохранитьНастройки — посмотри, в каких процедурах/функциях вызывается.

Лис Локи

69 — 02.02.12 — 11:57

Вот здесь только:

Процедура ЗавершитьРедактирование(Команда)

   СохранитьНастройки();

   

   СтруктураВозврата = Новый Структура;

   СтруктураВозврата.Вставить(«АдресСКД», АдресСКД);

   
   Закрыть(СтруктураВозврата);

КонецПроцедуры

extrim-style

70 — 02.02.12 — 12:03

В пользовательском режиме открой обработку Обработка.CRM_ОбменДаннымиС1СБухгалтерия (называется как в поле Синоним), посмотри, может что прояснится, какие-то параметры не установлены может.

Лис Локи

71 — 02.02.12 — 12:07

>В пользовательском режиме

Т.е. не из конструктора?

alxxsssar

72 — 02.02.12 — 12:09

просто 1с предприятие открой, открой эту обработку, найди какую-нибудь закладку, кнопку или что-нибудь с надписью «Настройки» и посмотри что там у тебя заполнено

dva1c

73 — 02.02.12 — 12:14

*Вернулся с попкорном.

alxxsssar

74 — 02.02.12 — 12:17

(73) отсыпь, я голодный)))

Лис Локи

75 — 02.02.12 — 12:49

Так, нашел кнопку с надписью «настройки». Большую такую. И там до фига, но ничего про СКД что-то нема.

А сама обработка же не запускается, даже форма не появляется, тупо «Недопустимое значение параметра (параметр номер ‘1’) «.

Лис Локи

76 — 02.02.12 — 12:50

Кстати, господа, через 2 часа мой раочий день кончается, но завтра цирк продолжится.

Лис Локи

77 — 02.02.12 — 12:50

*рабочий

extrim-style

78 — 02.02.12 — 12:55

(75) попробуй покурить правильное заполнение и сохранение настроек этой обработки

Лис Локи

79 — 02.02.12 — 12:58

В этом проблема. Я по этой 1С CRM Стандарт мануалов вообще не нашел в инете. Может я что-то не так ищу? Или не знаю правильного названия?

extrim-style

80 — 02.02.12 — 13:00

(79) а, ну теперь понятно, откуда «настройка» из (0) пошла =)

Лис Локи

81 — 02.02.12 — 13:09

Так объясните мне пожалуйста, в чем развязка этого детектива с 1С?)

alxxsssar

82 — 02.02.12 — 13:37

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

alxxsssar

83 — 02.02.12 — 13:38

+(82) формы настроек

alxxsssar

84 — 02.02.12 — 13:38

+(81) или в конфигураторе полазай по полям формы настроек и через их свойства (ПКМ) смотри имя реквизита

Лис Локи

85 — 02.02.12 — 13:57

И если что-то такое найду, что на что исправить?

alxxsssar

86 — 02.02.12 — 13:58

если он в пользовательской пустой, то заполни. что вводить — уж извини, тебе лучше знать

Лис Локи

87 — 02.02.12 — 14:06

Так, в пользовательской я его не нашел.

В реквизитах:

Имя: АдресСКД

Заголовок: Адрес СКД

Основной реквизит — не выбрано.

Сохраняемые данные — не выбрано.

Функциональных опций — нет.

Проверка заполнения — не проверять.

extrim-style

88 — 02.02.12 — 14:07

(81) в (67) только пересохранение настроек. Должно быть где-то еще присвоение АдресСКД. Посмотри в процедурах ПриОткрытии и ПередОткрытием, и еще, кроме модуля формы, есть модуль объекта. ПКМ на обработку в дереве метаданных — открыть модуль объекта — там поищи присвоение АдресСКД.

Лис Локи

89 — 02.02.12 — 14:11

Обработке я выбрал «Обмен данными 1С и т.п.», правой клавишей, модуль объекта — и девственно чистый лист распахнул свои объятья. Видимо опять не туда.

>процедурах ПриОткрытии и ПередОткрытием

А они-то где, добрый человек?

extrim-style

90 — 02.02.12 — 14:14

(89) вот в этой пусто? — Обработка.CRM_ОбменДаннымиС1СБухгалтерия?

ПриОткрытии и ПередОткрытием в модуле формы, но может и не быть.

alxxsssar

91 — 02.02.12 — 14:17

отсылаю к (84) полазай по самой форме настроек, по свойствам всех полей найди эту долбаную «АдресСРМ» и глянь, какая надпись около него стоит на форме.

Лис Локи

92 — 02.02.12 — 14:17

Да, оно пусто.

Лис Локи

93 — 02.02.12 — 14:18

Процедура СкопироватьЭлементы(ПриемникЗначения, ИсточникЗначения, ПроверятьДоступность = Ложь, ОчищатьПриемник = Истина)

   

   Если ТипЗнч(ИсточникЗначения) = Тип(«УсловноеОформлениеКомпоновкиДанных»)

       Или ТипЗнч(ИсточникЗначения) = Тип(«ВариантыПользовательскогоПоляВыборКомпоновкиДанных»)

       Или ТипЗнч(ИсточникЗначения) = Тип(«ОформляемыеПоляКомпоновкиДанных»)

       Или ТипЗнч(ИсточникЗначения) = Тип(«ЗначенияПараметровДанныхКомпоновкиДанных») Тогда

       
       СоздаватьПоТипу = Ложь;

       
   Иначе

       
       СоздаватьПоТипу = Истина;

       
   КонецЕсли;

   

   ПриемникЭлементов = ПриемникЗначения.Элементы;

   ИсточникЭлементов = ИсточникЗначения.Элементы;

   Если ОчищатьПриемник Тогда

       ПриемникЭлементов.Очистить();

   КонецЕсли;

   
   Для каждого ЭлементИсточник Из ИсточникЭлементов Цикл

       
       Если ТипЗнч(ЭлементИсточник) = Тип(«ЭлементПорядкаКомпоновкиДанных») Тогда

           

           // Элементы порядка добавляем в начало

           Индекс = ИсточникЭлементов.Индекс(ЭлементИсточник);

           ЭлементПриемник = ПриемникЭлементов.Вставить(Индекс, ТипЗнч(ЭлементИсточник));

           
       Иначе

           

           Если СоздаватьПоТипу Тогда

               ЭлементПриемник = ПриемникЭлементов.Добавить(ТипЗнч(ЭлементИсточник));

           Иначе

               ЭлементПриемник = ПриемникЭлементов.Добавить();

           КонецЕсли;

           
       КонецЕсли;

       

       ЗаполнитьЗначенияСвойств(ЭлементПриемник, ЭлементИсточник);

       // В некоторых коллекциях необходимо заполнить другие коллекции

       Если ТипЗнч(ИсточникЭлементов) = Тип(«КоллекцияЭлементовУсловногоОформленияКомпоновкиДанных») Тогда

           

           СкопироватьЭлементы(ЭлементПриемник.Поля, ЭлементИсточник.Поля);

           СкопироватьЭлементы(ЭлементПриемник.Отбор, ЭлементИсточник.Отбор);

           ЗаполнитьЭлементы(ЭлементПриемник.Оформление, ЭлементИсточник.Оформление);

           
       ИначеЕсли ТипЗнч(ИсточникЭлементов)    = Тип(«КоллекцияВариантовПользовательскогоПоляВыборКомпоновкиДанных») Тогда

           
           СкопироватьЭлементы(ЭлементПриемник.Отбор, ЭлементИсточник.Отбор);

           
       КонецЕсли;

       

       // В некоторых элементах коллекции необходимо заполнить другие коллекции

       Если ТипЗнч(ЭлементИсточник) = Тип(«ГруппаЭлементовОтбораКомпоновкиДанных») Тогда

           
           СкопироватьЭлементы(ЭлементПриемник, ЭлементИсточник);

           
       ИначеЕсли ТипЗнч(ЭлементИсточник) = Тип(«ГруппаВыбранныхПолейКомпоновкиДанных») Тогда

           
           СкопироватьЭлементы(ЭлементПриемник, ЭлементИсточник);

           
       ИначеЕсли ТипЗнч(ЭлементИсточник) = Тип(«ПользовательскоеПолеВыборКомпоновкиДанных») Тогда

           
           СкопироватьЭлементы(ЭлементПриемник.Варианты, ЭлементИсточник.Варианты);

           
       ИначеЕсли ТипЗнч(ЭлементИсточник) = Тип(«ПользовательскоеПолеВыражениеКомпоновкиДанных») Тогда

           

           ЭлементПриемник.УстановитьВыражениеДетальныхЗаписей (ЭлементИсточник.ПолучитьВыражениеДетальныхЗаписей());

           ЭлементПриемник.УстановитьВыражениеИтоговыхЗаписей(ЭлементИсточник.ПолучитьВыражениеИтоговыхЗаписей());

           ЭлементПриемник.УстановитьПредставлениеВыраженияДетальныхЗаписей(ЭлементИсточник.ПолучитьПредставлениеВыраженияДетальныхЗаписей ());

           ЭлементПриемник.УстановитьПредставлениеВыраженияИтоговыхЗаписей(ЭлементИсточник.ПолучитьПредставлениеВыраженияИтоговыхЗаписей ());

           
       КонецЕсли;

       
   КонецЦикла;

   
КонецПроцедуры

&НаСервере

Процедура ЗаполнитьЭлементы(ПриемникЗначения, ИсточникЗначения, ПервыйУровень = Неопределено)

   

   Если ТипЗнч(ПриемникЗначения) = Тип(«КоллекцияЗначенийПараметровКомпоновкиДанных») Тогда

       КоллекцияЗначений = ИсточникЗначения;

   Иначе

       КоллекцияЗначений = ИсточникЗначения.Элементы;

   КонецЕсли;

   
   Для каждого ЭлементИсточник Из КоллекцияЗначений Цикл

       

       Если ПервыйУровень = Неопределено Тогда

           ЭлементПриемник = ПриемникЗначения.НайтиЗначениеПараметра(ЭлементИсточник.Параметр);

       Иначе

           ЭлементПриемник = ПервыйУровень.НайтиЗначениеПараметра(ЭлементИсточник.Параметр);

       КонецЕсли;

       

       Если ЭлементПриемник = Неопределено Тогда

           Продолжить;

       КонецЕсли;

       

       ЗаполнитьЗначенияСвойств(ЭлементПриемник, ЭлементИсточник);

       Если ТипЗнч(ЭлементИсточник) = Тип(«ЗначениеПараметраКомпоновкиДанных») Тогда

           

           Если ЭлементИсточник.ЗначенияВложенныхПараметров.Количество() <> 0 Тогда

               ЗаполнитьЭлементы(ЭлементПриемник.ЗначенияВложенныхПараметров, ЭлементИсточник.ЗначенияВложенныхПараметров, ПриемникЗначения);

           КонецЕсли;

           
       КонецЕсли;

       
   КонецЦикла;

   
КонецПроцедуры

&НаСервере

// Процедура удаляет все элементы настройки компоновки данных из объекта

//

Процедура ОчиститьНастройкиКомпоновкиДанных(Настройки)

   

   Если Настройки = Неопределено Или ТипЗнч(Настройки) <> Тип(«НастройкиКомпоновкиДанных») Тогда

       Возврат;

   КонецЕсли;

   

   Для каждого Параметр Из Настройки.ПараметрыДанных.Элементы Цикл

       Параметр.Значение = Неопределено;

       Параметр.Использование = Ложь;

   КонецЦикла;

   

   Для каждого Параметр Из Настройки.ПараметрыВывода.Элементы Цикл

       Параметр.Использование = Ложь;

   КонецЦикла;

   

   Настройки.ПользовательскиеПоля.Элементы.Очистить();

   Настройки.Отбор.Элементы.Очистить();

   Настройки.Порядок.Элементы.Очистить();

   Настройки.Выбор.Элементы.Очистить();

   Настройки.Структура.Очистить();

   
КонецПроцедуры

&НаСервере

// Копирует настройки компоновки данных

//

Процедура СкопироватьНастройкиКомпоновкиДанных(НастройкиПриемник, НастройкиИсточник)

   

   Если НастройкиИсточник = Неопределено Тогда

       Возврат;

   КонецЕсли;

   
   Если ТипЗнч(НастройкиПриемник) = Тип(«НастройкиКомпоновкиДанных») Тогда

       
       Для каждого Параметр Из НастройкиИсточник.ПараметрыДанных.Элементы Цикл

           

           ЗначениеПараметра = НастройкиПриемник.ПараметрыДанных.НайтиЗначениеПараметра(Параметр.Параметр);

           Если ЗначениеПараметра <> Неопределено Тогда

               ЗаполнитьЗначенияСвойств(ЗначениеПараметра, Параметр);

           КонецЕсли;

           
       КонецЦикла;

       
   КонецЕсли;

   
   Если ТипЗнч(НастройкиИсточник) = Тип(«НастройкиВложенногоОбъектаКомпоновкиДанных») Тогда

       

       ЗаполнитьЗначенияСвойств(НастройкиПриемник, НастройкиИсточник);

       СкопироватьНастройкиКомпоновкиДанных(НастройкиПриемник.Настройки, НастройкиИсточник.Настройки);

       Возврат;

       
   КонецЕсли;

   

   // Копирование настроек

   Если ТипЗнч(НастройкиИсточник) = Тип(«НастройкиКомпоновкиДанных») Тогда

       

       ЗаполнитьЭлементы(НастройкиПриемник.ПараметрыДанных, НастройкиИсточник.ПараметрыДанных);

       СкопироватьЭлементы(НастройкиПриемник.ПользовательскиеПоля, НастройкиИсточник.ПользовательскиеПоля);

       СкопироватьЭлементы(НастройкиПриемник.Отбор,         НастройкиИсточник.Отбор);

       СкопироватьЭлементы(НастройкиПриемник.Порядок,       НастройкиИсточник.Порядок);

       
   КонецЕсли;

   

   Если ТипЗнч(НастройкиИсточник) = Тип(«ГруппировкаКомпоновкиДанных»)

    Или ТипЗнч(НастройкиИсточник) = Тип(«ГруппировкаТаблицыКомпоновкиДанных»)

    Или ТипЗнч(НастройкиИсточник) = Тип(«ГруппировкаДиаграммыКомпоновкиДанных») Тогда

       

       СкопироватьЭлементы(НастройкиПриемник.ПоляГруппировки, НастройкиИсточник.ПоляГруппировки);

       СкопироватьЭлементы(НастройкиПриемник.Отбор,           НастройкиИсточник.Отбор);

       СкопироватьЭлементы(НастройкиПриемник.Порядок,         НастройкиИсточник.Порядок);

       ЗаполнитьЗначенияСвойств(НастройкиПриемник, НастройкиИсточник);

       
   КонецЕсли;

   

   СкопироватьЭлементы(НастройкиПриемник.Выбор,              НастройкиИсточник.Выбор);

   СкопироватьЭлементы(НастройкиПриемник.УсловноеОформление, НастройкиИсточник.УсловноеОформление);

   ЗаполнитьЭлементы(НастройкиПриемник.ПараметрыВывода,      НастройкиИсточник.ПараметрыВывода);

   

   // Копирование структуры

   Если ТипЗнч(НастройкиИсточник) = Тип(«НастройкиКомпоновкиДанных»)

    Или ТипЗнч(НастройкиИсточник) = Тип(«ГруппировкаКомпоновкиДанных») Тогда

       
       Для каждого ЭлементСтруктурыИсточник Из НастройкиИсточник.Структура Цикл

           

           ЭлементСтруктурыПриемник = НастройкиПриемник.Структура.Добавить(ТипЗнч(ЭлементСтруктурыИсточник));

           СкопироватьНастройкиКомпоновкиДанных(ЭлементСтруктурыПриемник, ЭлементСтруктурыИсточник);

           
       КонецЦикла;

       
   КонецЕсли;

   

   Если ТипЗнч(НастройкиИсточник) = Тип(«ГруппировкаТаблицыКомпоновкиДанных»)

    Или ТипЗнч(НастройкиИсточник) = Тип(«ГруппировкаДиаграммыКомпоновкиДанных») Тогда

       
       Для каждого ЭлементСтруктурыИсточник Из НастройкиИсточник.Структура Цикл

           

           ЭлементСтруктурыПриемник = НастройкиПриемник.Структура.Добавить();

           СкопироватьНастройкиКомпоновкиДанных(ЭлементСтруктурыПриемник, ЭлементСтруктурыИсточник);

           
       КонецЦикла;

       
   КонецЕсли;

   
   Если ТипЗнч(НастройкиИсточник) = Тип(«ТаблицаКомпоновкиДанных») Тогда

       
       Для каждого ЭлементСтруктурыИсточник Из НастройкиИсточник.Строки Цикл

           

           ЭлементСтруктурыПриемник = НастройкиПриемник.Строки.Добавить();

           СкопироватьНастройкиКомпоновкиДанных(ЭлементСтруктурыПриемник, ЭлементСтруктурыИсточник);

           
       КонецЦикла;

       
       Для каждого ЭлементСтруктурыИсточник Из НастройкиИсточник.Колонки Цикл

           

           ЭлементСтруктурыПриемник = НастройкиПриемник.Колонки.Добавить();

           СкопироватьНастройкиКомпоновкиДанных(ЭлементСтруктурыПриемник, ЭлементСтруктурыИсточник);

           
       КонецЦикла;

       
   КонецЕсли;

   
   Если ТипЗнч(НастройкиИсточник) = Тип(«ДиаграммаКомпоновкиДанных») Тогда

       
       Для каждого ЭлементСтруктурыИсточник Из НастройкиИсточник.Серии Цикл

           

           ЭлементСтруктурыПриемник = НастройкиПриемник.Серии.Добавить();

           СкопироватьНастройкиКомпоновкиДанных(ЭлементСтруктурыПриемник, ЭлементСтруктурыИсточник);

           
       КонецЦикла;

       
       Для каждого ЭлементСтруктурыИсточник Из НастройкиИсточник.Точки Цикл

           

           ЭлементСтруктурыПриемник = НастройкиПриемник.Точки.Добавить();

           СкопироватьНастройкиКомпоновкиДанных(ЭлементСтруктурыПриемник, ЭлементСтруктурыИсточник);

           
       КонецЦикла;

       
   КонецЕсли;

   
КонецПроцедуры

&НаСервере

//Сохраняет настройки схемы компоновки

//

Процедура СохранитьНастройки()

   КомпоновщикНастроек.Восстановить();

   СКД = ПолучитьИзВременногоХранилища(АдресСКД);

   НастройкиСКД          = СКД.НастройкиПоУмолчанию;

   НастройкиКомпоновщика = КомпоновщикНастроек.ПолучитьНастройки();

   ОчиститьНастройкиКомпоновкиДанных(НастройкиСКД);

   СкопироватьНастройкиКомпоновкиДанных(НастройкиСКД, НастройкиКомпоновщика);

   АдресСКД = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор);

КонецПроцедуры

////////////////////////////////////////////////////////////////////////////////

// ПРОЦЕДУРЫ — ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ

&НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

   
   //crack start crack end// CRM_ЗащитаСервер.ПолучитьЗащищеннуюОбработку().ПриСозданиеНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);

   
   АдресСКД = Параметры.АдресСКД;

   
   СКД = ПолучитьИзВременногоХранилища(АдресСКД);

   Если СКД <> Неопределено Тогда

       КомпоновщикНастроек.Инициализировать(

           Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСКД)

           );

       КомпоновщикНастроек.ЗагрузитьНастройки(СКД.НастройкиПоУмолчанию);

       КомпоновщикНастроек.Восстановить();

   КонецЕсли;

   
КонецПроцедуры

////////////////////////////////////////////////////////////////////////////////

// ПРОЦЕДУРЫ — ОБРАБОТЧИКИ СОБЫТИЙ ОСТАЛЬНЫХ ЭЛЕМЕНТОВ УПРАВЛЕНИЯ ФОРМЫ

&НаКлиенте

Процедура ЗавершитьРедактирование(Команда)

   СохранитьНастройки();

   

   СтруктураВозврата = Новый Структура;

   СтруктураВозврата.Вставить(«АдресСКД», АдресСКД);

   
   Закрыть(СтруктураВозврата);

КонецПроцедуры

И приоткрытии закрытии тоже нет.

alxxsssar

94 — 02.02.12 — 14:18

вот и заполняй, там скорее всего диалог выбора файла

Лис Локи

95 — 02.02.12 — 14:21

отсылаю к (84) полазай по самой форме настроек, по свойствам всех полей найди эту долбаную «АдресСРМ» и глянь, какая надпись около него стоит на форме

Нет, там не пусто. Там вообще какая-то левая форма с двумя memo-подобными полями и одной кнопочкой ОКэй.

alxxsssar

96 — 02.02.12 — 14:22

можешь обработку на почту прислать?

Лис Локи

97 — 02.02.12 — 14:25

С удовольствием, скажи только как.

Лис Локи

98 — 02.02.12 — 14:25

Без проблем, скажи только как.

extrim-style

99 — 02.02.12 — 14:26

(95) ну вот же присвоение — АдресСКД = Параметры.АдресСКД;

Поставь там точку и запусти обработку в пользовательском режиме, как написано в (5), и по Shift+F9 посмотри содержание Параметры.АдресСКД или Параметры вообще.

alxxsssar

100 — 02.02.12 — 14:28

в конфигураторе плавой клавишей на обработкук -> сохранить как внешнюю обработку, отчет, выбираешь место и вуаля. отошли на alxxsssar@mail.ru

Здравствуйте. При настройке 1С «Предприятие» возникла следующая проблема: при попытке «Обмена данными» (Обмен даннымиВыгрузка счетов на оплатуЗагрузка взаиморасчетов с клиентам) появляется вот такое сообщение: Недопустимое значение параметра (параметр номер ‘1’) Процедура СформироватьТекстЗапросаИПолучитьЗагруженныеОбороты Служебные сообщения: {Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения}: Ошибка при вызове метода контекста (ПолучитьИзВременногоХранилища)    СКД = ПолучитьИзВременногоХранилища(АдресСКД);     Недопустимое значение параметра (параметр номер ‘1’) Прошу, помогите как можно скорее. Сам я в 1С лишь скромный эникейщик.

Здравствуйте. При настройке 1С «Предприятие» возникла следующая проблема: при попытке «Обмена данными» (Обмен даннымиВыгрузка счетов на оплатуЗагрузка взаиморасчетов с клиентам) появляется вот такое сообщение: Недопустимое значение параметра (параметр номер ‘1’) Процедура СформироватьТекстЗапросаИПолучитьЗагруженныеОбороты Служебные сообщения: {Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения}: Ошибка при вызове метода контекста (ПолучитьИзВременногоХранилища)    СКД = ПолучитьИзВременногоХранилища(АдресСКД);     Недопустимое значение параметра (параметр номер ‘1’) Прошу, помогите как можно скорее. Сам я в 1С лишь скромный эникейщик.

Ну, на этот кусок. В общем курсор он там останавливает.

Я тебе сказал почему ошибка. А почему АдресСКД  не строка это только отлажчиком на месте определишь.

О, понял. Мда, глупо получилось. Как это поглядеть примерно?

На строке «СКД = ПолучитьИзВременногоХранилища(АдресСКД)» в конфигураторе, делаешь точку останова (F9 и «красная» точка). Потом в предприятии запускаешь. Когда доходит до этого места происходит переключение в конфигуратор на точку останова. Выделяешь «АдресСКД» и нажимаешь Shift+F9. В результате видишь табло, где все показано. Анализируешь, поправляешь и пытаешь снова, пока не исправишь.

Результат: Свойство АдресСКД Значение «» Тип Строка Шарады какие-то.

Ну значит пустое значение у него тоже считается недопустимым параметром. Что в принципе логично

Слава богу, «» — не является очередным извращением языка, а то я уже испугался. Ок, как посмотреть, где оно задается? (код не мой, естественно).

Вот в коде и смотри, где ей присваивается значение

То ли это я сродни дереву, то ли в коде выше оно просто не упоминается ни разу.

Может быть это реквизит обработки?

Т.е.? Вообще, связанная с СКД в коде выше только эта процедура: Процедура УстановитьПоляОтбораПоСКД(СКД)

В обработке на закладке Данные есть АдресСКД или нет?

Среди реквизитов то есть?

В «Обработке», которая в окне «Конфигурация» — вроде нет.

Т.е. хочешь сказать: Обработки -> «Твоя обработка» -> реквизиты — пусто? Значит надо добавлять реквизит, который надо заполнять.

Собственно да, предугадал вопрос.

А может это реквизит формы?

Исходишь из логики: для чего нужна обработка? Что нужно получить для построения отчета? Пытаешься понять для чего нужен этот «АдресСКД»?

-> Верно построенное предположение. +1

Да вроде и там (Общиеобщие формы) ничего такого не наблюдается. Мда. Отчет-обработка. > для чего нужен этот «АдресСКД»? Понятия не имею, честно говоря. Я имею ввиду, я даже не предполагаю, как он ДОЛЖЕН выглядеть.

Отчет готовый есть? Что он должен формировать? Неужели не знаешь?

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

Уже не так все плохо. Копай дальше. )

А глобальный поиск по конфе твоего «АдресСКД» делал?

>А глобальный поиск по конфе твоего «АдресСКД» делал? Нет, конечно, ибо 1С изучал «давно и не правда». Как?

)) Иконку «Папка с биноклем» видишь? Если — да, то это «Глобальный поиск».

«Есть папка с увеличительным стеклом», жмакнул, вот что нашло: Поиск строки «АдресСКД»… Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(154, 38) : СКД = ПолучитьИзВременногоХранилища(АдресСКД); Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1095, 38) : СКД = ПолучитьИзВременногоХранилища(АдресСКД); Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1139, 2) : АдресСКД = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор); Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1148, 38) : СКД = ПолучитьИзВременногоХранилища(АдресСКД); Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1175, 2) : АдресСКД = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор); Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1274, 21) : Новый Структура(«АдресСКД»,АдресСКД)); Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1274, 31) : Новый Структура(«АдресСКД»,АдресСКД)); Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1277, 3) : АдресСКД = Результат.АдресСКД; Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1277, 24) : АдресСКД = Результат.АдресСКД; Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(270, 38) : СКД = ПолучитьИзВременногоХранилища(АдресСКД); Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(277, 2) : АдресСКД = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор); Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(290, 2) : АдресСКД = Параметры.АдресСКД; Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(290, 23) : АдресСКД = Параметры.АдресСКД; Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(292, 38) : СКД = ПолучитьИзВременногоХранилища(АдресСКД); Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(296, 52) : Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСКД) Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(313, 30) : СтруктураВозврата.Вставить(«АдресСКД», АдресСКД); Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(313, 41) : СтруктураВозврата.Вставить(«АдресСКД», АдресСКД); Найдено вхождений: 17

Лениво анализировать то, что ты тут постишь. Самому очень тяжело?

Ну вот же: Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1277, 3) : АдресСКД = Результат.АдресСКД; Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1277, 24) : АдресСКД = Результат.АдресСКД; Вот и смотри там, как этот АдресСКД получается, и для чего нужен :)))

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

Тогда может тебе стоит забить на это, и позвать уже специалиста? :))))

Цитируя мою начальницу «Я всё равно бы тыкалась по интернету, как и ты, а так хотя бы время свободное будет». Собственно, сам-то я не сильно пряморукий писатель сайтов, но лучше у них просто нет.

>Если Результат <> Неопределено Тогда Это вообще норма?

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

Хм, кажется в общих формах формы «CRM_ОбменДаннымиС1СБухгалтерия» просто нет.

Где-то должен быть такой реквизит.

это не в общих формах — это в обработках

Ага, нашел. Нет, у неё только реквизиты НачалоПериода, КонецПериода, УниверсальныйОбменДанными, ИмяФайлаОбмена, ДатаВыгрузкиДанных.

есть реквизиты обработки, которую ты открываешь, а есть реквизиты формы — открываешь в этой обработке ФормуНастройки и переходишь на вкладку реквизиты.

интересно, какого характера была «настройка». Может проще оттуда топать?

Между объектом и компоновщиком настроек, тип «Строка».

И куда дальше тыкаться, добрые люди?

Все ушли на обед. Я тоже скоро ухожу. )

в в реквизитах формы есть АдресСКД?

Да, есть! offtop: Что ли самому потом пойти?

открой модуль этой формы. Встань в самое начало и по Ctrl+F поищи АдресСКД. Место, где АдресСКД присваивается значение — «АдресСКД = …»

в пользовательской открой и посмотри, он заполнен?

> открой модуль этой формы Как, добрая душа?

>открой модуль этой формы Ага, нашел, затупил, простите.

поставь точку останова на этой строчке и посмотри заполнение параметра СКД.

> поставь точку останова на этой строчке *тык F9* done! >посмотри заполнение параметра СКД Эм, поясни пожалуйста.

Что-то ни фига не происходит, оно просто выдаёт ошибку и продолжает работать дальше. (т.е. форма не вызывается, но и вылета нет). И табло не вызывается по шифт+f9 теперь.

варианты — конфигуратор закрыт. Если открыт — переоткрой всё снова, и поставь точку в этой строке. Если не заходит, поставь точку выше. Возможно находится в другой процедуре и нужно поискать другое присвоение АдресСКД и там уже ставить точку и смотреть. Если ни то, ни другое — курить, почему не заходит в эту процедуру.

> Если ни то, ни другое — курить, почему не заходит в эту процедуру. А возможно ли это закомментить и написать свое, аналогичное? Я имею ввиду, насколько там большая простыня должна быть?

прежде чем что-то писать, нужно знать что писать. лучше вспомнить, что в настраивали

По идее — форму для «Загрузки взаиморасчетов с клиентам».

Если больше присвоения АдресСКД в форме нет, то тогда в смотри присвоение СКД, т.к. скорей всего что-то не присваивается. В какой процедуре находится?

находится в «Сохранить настройки»:

по Ctrl+F сделай поиск в модуле СохранитьНастройки — посмотри, в каких процедурах/функциях вызывается.

В пользовательском режиме открой обработку Обработка.CRM_ОбменДаннымиС1СБухгалтерия (называется как в поле Синоним), посмотри, может что прояснится, какие-то параметры не установлены может.

>В пользовательском режиме Т.е. не из конструктора?

просто 1с предприятие открой, открой эту обработку, найди какую-нибудь закладку, кнопку или что-нибудь с надписью «Настройки» и посмотри что там у тебя заполнено

Так, нашел кнопку с надписью «настройки». Большую такую. И там до фига, но ничего про СКД что-то нема. А сама обработка же не запускается, даже форма не появляется, тупо «Недопустимое значение параметра (параметр номер ‘1’) «.

Кстати, господа, через 2 часа мой раочий день кончается, но завтра цирк продолжится.

попробуй покурить правильное заполнение и сохранение настроек этой обработки

В этом проблема. Я по этой 1С CRM Стандарт мануалов вообще не нашел в инете. Может я что-то не так ищу? Или не знаю правильного названия?

а, ну теперь понятно, откуда «настройка» из пошла =)

Так объясните мне пожалуйста, в чем развязка этого детектива с 1С?)

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

+ или в конфигураторе полазай по полям формы настроек и через их свойства (ПКМ) смотри имя реквизита

И если что-то такое найду, что на что исправить?

если он в пользовательской пустой, то заполни. что вводить — уж извини, тебе лучше знать

Так, в пользовательской я его не нашел. В реквизитах: Имя: АдресСКД Основной реквизит — не выбрано. Сохраняемые данные — не выбрано. Функциональных опций — нет. Проверка заполнения — не проверять.

в только пересохранение настроек. Должно быть где-то еще присвоение АдресСКД. Посмотри в процедурах ПриОткрытии и ПередОткрытием, и еще, кроме модуля формы, есть модуль объекта. ПКМ на обработку в дереве метаданных — открыть модуль объекта — там поищи присвоение АдресСКД.

Обработке я выбрал «Обмен данными 1С и т.п.», правой клавишей, модуль объекта — и девственно чистый лист распахнул свои объятья. Видимо опять не туда. >процедурах ПриОткрытии и ПередОткрытием А они-то где, добрый человек?

вот в этой пусто? — Обработка.CRM_ОбменДаннымиС1СБухгалтерия? ПриОткрытии и ПередОткрытием в модуле формы, но может и не быть.

отсылаю к полазай по самой форме настроек, по свойствам всех полей найди эту долбаную «АдресСРМ» и глянь, какая надпись около него стоит на форме.

И приоткрытии закрытии тоже нет.

вот и заполняй, там скорее всего диалог выбора файла

отсылаю к полазай по самой форме настроек, по свойствам всех полей найди эту долбаную «АдресСРМ» и глянь, какая надпись около него стоит на форме Нет, там не пусто. Там вообще какая-то левая форма с двумя memo-подобными полями и одной кнопочкой ОКэй.

можешь обработку на почту прислать?

С удовольствием, скажи только как.

Без проблем, скажи только как.

Содержание:

1. Почему может возникнуть ошибка при вызове конструктора (COM-объект 1С)?

2. С помощью чего можно исправить ошибку при вызове конструктора (COM-объект 1С)?

3. Параметры при вызове конструктора (COM-объект 1С), которые регистрируют компоненты строки кода перед регистрируемым dll-файлом    

1.      Почему может возникнуть ошибка при вызове конструктора (COM-объект 1С)?

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

Сегодня мы разберем одну из ошибок, которые появляются при работе с базой, а именно ошибку при вызове конструктора (COM-объект 1С).

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

Как правило, данная ошибка возникает из-за того, что при установке платформы1С не произошла автоматическая регистрация 64-х разрядной компоненты, которая отвечает за использование COM-соединения 1С 8.3. А почему это произошло, спросите? Все очень просто и в то же время сложно, если не знаешь, в чем все ядро проблемы. А причина в том, что те, у кого выдаются такие ошибки, используют 32(86) – разрядную операционную систему и ставят вместо платформы необходимой разрядности их системы, платформу 1С предназначенную для совсем другой системы.   

2. С помощью чего можно исправить ошибку при вызове конструктора (COM-объект 1С)?

Исправить данную ошибку, довольно легко. Для этого необходимо всего лишь зарегистрировать библиотеку dll в реестре при помощи командной строки или программы PowerShell, в зависимости от того, что любите использовать, и команды regsvr32.

Для того чтобы выполнить команду, достаточно будет в строке написать такой текст команды «regsvr32 «C:\Program Files\1cv8\8.3.ХХ.ХХХХ\bin\comcntr.dll»». Вместо «ХХ.ХХХХ» необходимо указать необходимый релиз платформы, библиотеку которой, необходимо зарегистрировать в реестре системы.

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

Администратор: Командная строка   

3. Параметры при вызове конструктора (COM-объект 1С), которые регистрируют компоненты строки кода перед регистрируемым dll-файлом

Также есть некоторые особенности команды, которая регистрирует компоненты.

На данный момент я знаю только 4 параметра (которые при написании строки кода указываются перед регистрируемым dll-файлом):

·        /u — параметр, отменяет регистрацию

·        /i — параметр, который позволяет при необходимости, в зависимости от библиотеки.

·        /n —параметр используется только для установки компоненты 1С, в основном пишется вместе с предыдущим (/I);

·        /s – возможность отключить все сообщения при регистрации;

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

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

Таких программ достаточно много и писать, какое-то одно название смысла нет.

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

Специалист компании «Кодерлайн»

Олег Мороз

Содержание:

1.    Возникновение ошибки «Неправильное имя атрибута структуры»

2.    Устранение ошибки «Неправильное имя атрибута структуры»

    Возникновение ошибки «Неправильное имя атрибута структуры»

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

          Часто у разработчиков, во время попытки добавления элемента в структуру, если у структуры неверный идентификатор, появляется сообщение об ошибке с текстом: «Задано неправильное имя атрибута структуры».

          Стоит помнить, что по методу «Структура – Insert()» — в идентификаторе должно содержаться его же индивидуальное содержание, в качестве которого могут быть лишь цифры, буквы или нижние подчёркивания.

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

    Устранение ошибки «Неправильное имя атрибута структуры»

          Так что, если правила, описанные в абзаце выше не выполнены, то есть, есть недопустимые символы, то такая ошибка обязательно возникнет. В этом случае, все некорректные символы нужно найти разработчику самому, это поможет сделать инструмент «Report()», который переводится – «Сообщить()». Таким образом, этот инструмент может помочь устранить неполадку.

          На скриншоте с кодом ниже продемонстрирована вариация ключа, которая основывается на методе «Insert()» — «Вставить()»:

Далее нужно узнать искомое место неполадки при помощи идентификатора в запросе 1С, который настраивает работоспособность.

          Далее отладчик, который будет работать в режиме мониторинга, отобразит нужную строку с неверным символом.

          Дополнительная информация по ошибке «Неправильное имя атрибута структуры»

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

          Первое – это то, что переключение между конфигурациями сервера 1С возможно только со стабильными версиями сборок. Поэтому, желательно выбрать версию 3.1.10, после чего переходить на новую сборку. Так происходит из-за того, что оболочка была в ZUP прошлых версиях, но начиная с версии 3.1.10 их нет.

          Таким образом, в статье была проведена диагностика ошибки программы 1С – «Неправильное имя атрибута структуры»: выяснены причины возникновения, момент возникновения, а также показана методика по устранению неполадки и даны некоторые дополнительные материалы-советы, которые помогут избежать данной ошибки.

Фархутдинов Айдар,

Специалист компании ООО «Кодерлайн»

Понравилась статья? Поделить с друзьями:

Интересное по теме:

  • 1с подождите пожалуйста выполняется сохранение информации об ошибке
  • 1с ошибка преобразования картинки
  • 1с платежное поручение исходящее ошибка
  • 1с ошибка прав доступа при открытии внешней обработки
  • 1с пишет ошибка формата потока как исправить

  • Добавить комментарий

    ;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: