|
Недопустимое значение параметра (параметр номер '1') | ☑ | ||
---|---|---|---|---|
0
Лис Локи
02.02.12
✎
07:46
|
Здравствуйте. При настройке 1С "Предприятие" возникла следующая проблема: при попытке "Обмена данными" (Обмен данными\Выгрузка счетов на оплату\Загрузка взаиморасчетов с клиентам) появляется вот такое сообщение:
Недопустимое значение параметра (параметр номер '1') Процедура СформироватьТекстЗапросаИПолучитьЗагруженныеОбороты() СКД = ПолучитьИзВременногоХранилища(АдресСКД); // Отладчик ругается на эту строку. УстановитьПоляОтбораПоСКД(СКД); КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СКД)); КомпоновщикНастроек.ЗагрузитьНастройки(СКД.НастройкиПоУмолчанию); КомпоновщикНастроек.Восстановить(); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СКД, КомпоновщикНастроек.ПолучитьНастройки(), , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ТаблицаРезультатаКомпановки = ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); ПостроительЗапроса = Новый ПостроительЗапроса(); Источник = Новый ОписаниеИсточникаДанных(ТаблицаРезультатаКомпановки); ПостроительЗапроса.ИсточникДанных = Источник; ПостроительЗапроса.Выполнить(); РезультатЗапроса = ПостроительЗапроса.Результат.Выбрать(); Если НЕ СохранятьИзмененияПользователя Тогда Объект.Реализация.Очистить(); Объект.Оплата.Очистить(); Иначе мТаблицаОплат = Объект.Оплата.Выгрузить(); Объект.Оплата.Очистить(); КонецЕсли; Пока РезультатЗапроса.Следующий() Цикл Если НЕ СохранятьИзмененияПользователя Тогда Если РезультатЗапроса.ВидыДвиженийПриходРасход = Перечисления.CRM_ВидыДвиженийПриходРасход.Приход Тогда НоваяСтрока = Объект.Реализация.Добавить(); ИначеЕсли РезультатЗапроса.ВидыДвиженийПриходРасход = Перечисления.CRM_ВидыДвиженийПриходРасход.Расход Тогда НоваяСтрока = Объект.Оплата.Добавить(); КонецЕсли; ЗаполнитьЗначенияСвойств(НоваяСтрока, РезультатЗапроса); ДобавитьСвязанныеДокументы(РезультатЗапроса, РезультатЗапроса.ВидыДвиженийПриходРасход); Иначе // Скорректируем ТЧ Оплаты, т.к. в реализации было удаление строки Если РезультатЗапроса.ВидыДвиженийПриходРасход = Перечисления.CRM_ВидыДвиженийПриходРасход.Расход Тогда НоваяСтрока = Объект.Оплата.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, РезультатЗапроса); МассивСтрок = мТаблицаОплат.НайтиСтроки(Новый Структура("ИдентификаторДокумента, ИдентификаторКорДокумента",РезультатЗапроса.ИдентификаторДокумента,РезультатЗапроса.ИдентификаторКорДокумента)); Если НЕ МассивСтрок.Количество() = 0 Тогда НоваяСтрока.Счет = МассивСтрок[0].Счет; КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; Если НЕ мВремТаблицаРеализации.Количество() = 0 Тогда Для Каждого СтрокаРеализации ИЗ Объект.Реализация Цикл СтрокаТЗ = мВремТаблицаРеализации.Найти(СтрокаРеализации.ИдентификаторДокумента, "ИдентификаторДокумента"); Если НЕ СтрокаТЗ = Неопределено Тогда СтрокаРеализации.Счет = СтрокаТЗ.Счет; КонецЕсли; КонецЦикла; КонецЕсли; Если НЕ мВремТаблицаОплаты.Количество() = 0 Тогда Для Каждого СтрокаОплаты ИЗ Объект.Оплата Цикл МасивСтрок = мВремТаблицаОплаты.НайтиСтроки(Новый Структура("ИдентификаторДокумента, ИдентификаторКорДокумента", СтрокаОплаты.ИдентификаторДокумента, СтрокаОплаты.ИдентификаторКорДокумента)); Если НЕ МасивСтрок.Количество() = 0 Тогда СтрокаОплаты.Счет = МасивСтрок[0].Счет; КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры Служебные сообщения: {Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения(154)}: Ошибка при вызове метода контекста (ПолучитьИзВременногоХранилища) СКД = ПолучитьИзВременногоХранилища(АдресСКД); Недопустимое значение параметра (параметр номер '1') Прошу, помогите как можно скорее. Сам я в 1С лишь скромный эникейщик. |
|||
19
Лис Локи
02.02.12
✎
08:43
|
Собственно да, предугадал вопрос.
|
|||
20
Fish
02.02.12
✎
08:44
|
(16) А может это реквизит формы?
|
|||
21
dva1c
02.02.12
✎
08:45
|
(18) Исходишь из логики: для чего нужна обработка? Что нужно получить для построения отчета? Пытаешься понять для чего нужен этот "АдресСКД"?
|
|||
22
dva1c
02.02.12
✎
08:46
|
(21) -> (19)
(20) Верно построенное предположение. +1 |
|||
23
Лис Локи
02.02.12
✎
08:50
|
Да вроде и там (Общие\общие формы) ничего такого не наблюдается.
Мда. Отчет-обработка. > для чего нужен этот "АдресСКД"? Понятия не имею, честно говоря. Я имею ввиду, я даже не предполагаю, как он ДОЛЖЕН выглядеть. |
|||
24
dva1c
02.02.12
✎
08:54
|
(23) Отчет готовый есть? Что он должен формировать? Неужели не знаешь?
|
|||
25
Лис Локи
02.02.12
✎
08:57
|
По идее это должен был быть импорт взаиморасчетов с клиентами.
(Ведомость и остатки). Есть пример, да. |
|||
26
dva1c
02.02.12
✎
09:01
|
(25) Уже не так все плохо. Копай дальше. )
|
|||
27
Fish
02.02.12
✎
09:03
|
(23) А глобальный поиск по конфе твоего "АдресСКД" делал?
|
|||
28
Лис Локи
02.02.12
✎
09:05
|
>А глобальный поиск по конфе твоего "АдресСКД" делал?
Нет, конечно, ибо 1С изучал "давно и не правда". Как? |
|||
29
dva1c
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 |
|||
31
dva1c
02.02.12
✎
09:12
|
(30) Лениво анализировать то, что ты тут постишь. Самому очень тяжело?
|
|||
32
Fish
02.02.12
✎
09:13
|
(30) Ну вот же:
Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1277, 3) : АдресСКД = Результат.АдресСКД; Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1277, 24) : АдресСКД = Результат.АдресСКД; Вот и смотри там, как этот АдресСКД получается, и для чего нужен :))) |
|||
33
Лис Локи
02.02.12
✎
09:14
|
Проблема в том, что для меня это в основном китайские иероглифы.
Точнее русские, но от этого только грустнее. Ок, посмотрим-с. |
|||
34
Fish
02.02.12
✎
09:15
|
(33) Тогда может тебе стоит забить на это, и позвать уже специалиста? :))))
|
|||
35
Лис Локи
02.02.12
✎
09:15
|
Процедура Настройки(Команда)
Результат = ОткрытьФормуМодально( "Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки", Новый Структура("АдресСКД",АдресСКД)); Если Результат <> Неопределено Тогда АдресСКД = Результат.АдресСКД; СформироватьТекстЗапросаИПолучитьЗагруженныеОбороты(); Модифицированность = Истина; КонецЕсли; КонецПроцедуры |
|||
36
Лис Локи
02.02.12
✎
09:17
|
Цитируя мою начальницу "Я всё равно бы тыкалась по интернету, как и ты, а так хотя бы время свободное будет".
Собственно, сам-то я не сильно пряморукий писатель сайтов, но лучше у них просто нет. |
|||
37
dva1c
02.02.12
✎
09:25
|
(34)+100500 ))
|
|||
38
Лис Локи
02.02.12
✎
09:32
|
>Если Результат <> Неопределено Тогда
Это вообще норма? |
|||
39
alxxsssar
02.02.12
✎
09:33
|
Если адрес хранилища, то скорее всего это путь к файлам. Посмотри на форме обработки нет ли реквизита с выбором файла или чего подобного?
|
|||
40
Лис Локи
02.02.12
✎
09:35
|
Хм, кажется в общих формах формы "CRM_ОбменДаннымиС1СБухгалтерия" просто нет.
|
|||
41
alxxsssar
02.02.12
✎
09:43
|
Где-то должен быть такой реквизит.
|
|||
42
Лис Локи
02.02.12
✎
09:45
|
Есть поиск по ним?
|
|||
43
extrim-style
02.02.12
✎
09:45
|
(40) это не в общих формах - это в обработках
|
|||
44
Лис Локи
02.02.12
✎
09:48
|
Ага, нашел.
Нет, у неё только реквизиты НачалоПериода, КонецПериода, УниверсальныйОбменДанными, ИмяФайлаОбмена, ДатаВыгрузкиДанных. |
|||
45
extrim-style
02.02.12
✎
09:53
|
(44) есть реквизиты обработки, которую ты открываешь, а есть реквизиты формы - открываешь в этой обработке ФормуНастройки и переходишь на вкладку реквизиты.
|
|||
46
extrim-style
02.02.12
✎
09:54
|
(0) интересно, какого характера была "настройка". Может проще оттуда топать?
|
|||
47
Лис Локи
02.02.12
✎
09:56
|
Ага, открыл. Есть.
|
|||
48
Лис Локи
02.02.12
✎
09:57
|
Между объектом и компоновщиком настроек, тип "Строка".
|
|||
49
Лис Локи
02.02.12
✎
10:12
|
И куда дальше тыкаться, добрые люди?
|
|||
50
dva1c
02.02.12
✎
10:16
|
(49) Все ушли на обед. Я тоже скоро ухожу. )
|
|||
51
extrim-style
02.02.12
✎
10:16
|
(49) в (0) в реквизитах формы есть АдресСКД?
|
|||
52
Лис Локи
02.02.12
✎
10:18
|
Да, есть!
offtop: Что ли самому потом пойти? |
|||
53
extrim-style
02.02.12
✎
10:22
|
(52) открой модуль этой формы. Встань в самое начало и по Ctrl+F поищи АдресСКД. Место, где АдресСКД присваивается значение - "АдресСКД = ..."
|
|||
54
alxxsssar
02.02.12
✎
10:24
|
в пользовательской открой и посмотри, он заполнен?
|
|||
55
Лис Локи
02.02.12
✎
10:25
|
> открой модуль этой формы
Как, добрая душа? |
|||
56
Лис Локи
02.02.12
✎
10:30
|
>открой модуль этой формы
Ага, нашел, затупил, простите. |
|||
57
Лис Локи
02.02.12
✎
10:32
|
АдресСКД = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор);
Вот это? |
|||
58
extrim-style
02.02.12
✎
10:36
|
(57) поставь точку останова на этой строчке и посмотри заполнение параметра СКД.
|
|||
59
Лис Локи
02.02.12
✎
10:39
|
> поставь точку останова на этой строчке
*тык F9* done! >посмотри заполнение параметра СКД Эм, поясни пожалуйста. |
|||
60
extrim-style
02.02.12
✎
10:47
|
(59) смотри (5)
|
|||
61
Лис Локи
02.02.12
✎
10:56
|
Что-то ни фига не происходит, оно просто выдаёт ошибку и продолжает работать дальше. (т.е. форма не вызывается, но и вылета нет).
И табло не вызывается по шифт+f9 теперь. |
|||
62
extrim-style
02.02.12
✎
11:11
|
(61) варианты - конфигуратор закрыт. Если открыт - переоткрой всё снова, и поставь точку в этой строке. Если не заходит, поставь точку выше. Возможно (57) находится в другой процедуре и нужно поискать другое присвоение АдресСКД и там уже ставить точку и смотреть. Если ни то, ни другое - курить, почему не заходит в эту процедуру.
|
|||
63
Лис Локи
02.02.12
✎
11:18
|
> Если ни то, ни другое - курить, почему не заходит в эту процедуру.
А возможно ли это закомментить и написать свое, аналогичное? Я имею ввиду, насколько там большая простыня должна быть? |
|||
64
extrim-style
02.02.12
✎
11:26
|
(63) прежде чем что-то писать, нужно знать что писать.
лучше вспомнить, что в (0) настраивали |
|||
65
Лис Локи
02.02.12
✎
11:29
|
По идее - форму для "Загрузки взаиморасчетов с клиентам".
|
|||
66
extrim-style
02.02.12
✎
11:38
|
(65) Если больше присвоения АдресСКД в форме нет, то тогда в (57) смотри присвоение СКД, т.к. скорей всего что-то не присваивается. В какой процедуре находится?
|
|||
67
Лис Локи
02.02.12
✎
11:44
|
(57) находится в "Сохранить настройки":
Процедура СохранитьНастройки() КомпоновщикНастроек.Восстановить(); СКД = ПолучитьИзВременногоХранилища(АдресСКД); НастройкиСКД = СКД.НастройкиПоУмолчанию; НастройкиКомпоновщика = КомпоновщикНастроек.ПолучитьНастройки(); ОчиститьНастройкиКомпоновкиДанных(НастройкиСКД); СкопироватьНастройкиКомпоновкиДанных(НастройкиСКД, НастройкиКомпоновщика); АдресСКД = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор); КонецПроцедуры |
|||
68
extrim-style
02.02.12
✎
11:53
|
(68) по Ctrl+F сделай поиск в модуле СохранитьНастройки - посмотри, в каких процедурах/функциях вызывается.
|
|||
69
Лис Локи
02.02.12
✎
11:57
|
Вот здесь только:
Процедура ЗавершитьРедактирование(Команда) СохранитьНастройки(); СтруктураВозврата = Новый Структура; СтруктураВозврата.Вставить("АдресСКД", АдресСКД); Закрыть(СтруктураВозврата); КонецПроцедуры |
|||
70
extrim-style
02.02.12
✎
12:03
|
В пользовательском режиме открой обработку Обработка.CRM_ОбменДаннымиС1СБухгалтерия (называется как в поле Синоним), посмотри, может что прояснится, какие-то параметры не установлены может.
|
|||
71
Лис Локи
02.02.12
✎
12:07
|
>В пользовательском режиме
Т.е. не из конструктора? |
|||
72
alxxsssar
02.02.12
✎
12:09
|
просто 1с предприятие открой, открой эту обработку, найди какую-нибудь закладку, кнопку или что-нибудь с надписью "Настройки" и посмотри что там у тебя заполнено
|
|||
73
dva1c
02.02.12
✎
12:14
|
*Вернулся с попкорном.
|
|||
74
alxxsssar
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
|
*рабочий
|
|||
78
extrim-style
02.02.12
✎
12:55
|
(75) попробуй покурить правильное заполнение и сохранение настроек этой обработки
|
|||
79
Лис Локи
02.02.12
✎
12:58
|
В этом проблема. Я по этой 1С CRM Стандарт мануалов вообще не нашел в инете. Может я что-то не так ищу? Или не знаю правильного названия?
|
|||
80
extrim-style
02.02.12
✎
13:00
|
(79) а, ну теперь понятно, откуда "настройка" из (0) пошла =)
|
|||
81
Лис Локи
02.02.12
✎
13:09
|
Так объясните мне пожалуйста, в чем развязка этого детектива с 1С?)
|
|||
82
alxxsssar
02.02.12
✎
13:37
|
так может на форме она имеет другое название. посмотри что-нибудь похожее или выложи ссыль на скан формы
|
|||
83
alxxsssar
02.02.12
✎
13:38
|
+(82) формы настроек
|
|||
84
alxxsssar
02.02.12
✎
13:38
|
+(81) или в конфигураторе полазай по полям формы настроек и через их свойства (ПКМ) смотри имя реквизита
|
|||
85
Лис Локи
02.02.12
✎
13:57
|
И если что-то такое найду, что на что исправить?
|
|||
86
alxxsssar
02.02.12
✎
13:58
|
если он в пользовательской пустой, то заполни. что вводить - уж извини, тебе лучше знать
|
|||
87
Лис Локи
02.02.12
✎
14:06
|
Так, в пользовательской я его не нашел.
В реквизитах: Имя: АдресСКД Заголовок: Адрес СКД Тип: Строка Длина: 0 Основной реквизит - не выбрано. Сохраняемые данные - не выбрано. Функциональных опций - нет. Проверка заполнения - не проверять. |
|||
88
extrim-style
02.02.12
✎
14:07
|
(81) в (67) только пересохранение настроек. Должно быть где-то еще присвоение АдресСКД. Посмотри в процедурах ПриОткрытии и ПередОткрытием, и еще, кроме модуля формы, есть модуль объекта. ПКМ на обработку в дереве метаданных - открыть модуль объекта - там поищи присвоение АдресСКД.
|
|||
89
Лис Локи
02.02.12
✎
14:11
|
Обработке я выбрал "Обмен данными 1С и т.п.", правой клавишей, модуль объекта - и девственно чистый лист распахнул свои объятья. Видимо опять не туда.
>процедурах ПриОткрытии и ПередОткрытием А они-то где, добрый человек? |
|||
90
extrim-style
02.02.12
✎
14:14
|
(89) вот в этой пусто? - Обработка.CRM_ОбменДаннымиС1СБухгалтерия?
ПриОткрытии и ПередОткрытием в модуле формы, но может и не быть. |
|||
91
alxxsssar
02.02.12
✎
14:17
|
отсылаю к (84) полазай по самой форме настроек, по свойствам всех полей найди эту долбаную "АдресСРМ" и глянь, какая надпись около него стоит на форме.
|
|||
92
Лис Локи
02.02.12
✎
14:17
|
Да, оно пусто.
|
|||
93
Лис Локи
02.02.12
✎
14:18
|
Процедура СкопироватьЭлементы(ПриемникЗначения, ИсточникЗначения, ПроверятьДоступность = Ложь, ОчищатьПриемник = Истина)
Если ТипЗнч(ИсточникЗначения) = Тип("УсловноеОформлениеКомпоновкиДанных") Или ТипЗнч(ИсточникЗначения) = Тип("ВариантыПользовательскогоПоляВыборКомпоновкиДанных") Или ТипЗнч(ИсточникЗначения) = Тип("ОформляемыеПоляКомпоновкиДанных") Или ТипЗнч(ИсточникЗначения) = Тип("ЗначенияПараметровДанныхКомпоновкиДанных") Тогда СоздаватьПоТипу = Ложь; Иначе СоздаватьПоТипу = Истина; КонецЕсли; ПриемникЭлементов = ПриемникЗначения.Элементы; ИсточникЭлементов = ИсточникЗначения.Элементы; Если ОчищатьПриемник Тогда ПриемникЭлементов.Очистить(); КонецЕсли; Для каждого ЭлементИсточник Из ИсточникЭлементов Цикл Если ТипЗнч(ЭлементИсточник) = Тип("ЭлементПорядкаКомпоновкиДанных") Тогда // Элементы порядка добавляем в начало Индекс = ИсточникЭлементов.Индекс(ЭлементИсточник); ЭлементПриемник = ПриемникЭлементов.Вставить(Индекс, ТипЗнч(ЭлементИсточник)); Иначе Если СоздаватьПоТипу Тогда ЭлементПриемник = ПриемникЭлементов.Добавить(ТипЗнч(ЭлементИсточник)); Иначе ЭлементПриемник = ПриемникЭлементов.Добавить(); КонецЕсли; КонецЕсли; ЗаполнитьЗначенияСвойств(ЭлементПриемник, ЭлементИсточник); // В некоторых коллекциях необходимо заполнить другие коллекции Если ТипЗнч(ИсточникЭлементов) = Тип("КоллекцияЭлементовУсловногоОформленияКомпоновкиДанных") Тогда СкопироватьЭлементы(ЭлементПриемник.Поля, ЭлементИсточник.Поля); СкопироватьЭлементы(ЭлементПриемник.Отбор, ЭлементИсточник.Отбор); ЗаполнитьЭлементы(ЭлементПриемник.Оформление, ЭлементИсточник.Оформление); ИначеЕсли ТипЗнч(ИсточникЭлементов) = Тип("КоллекцияВариантовПользовательскогоПоляВыборКомпоновкиДанных") Тогда СкопироватьЭлементы(ЭлементПриемник.Отбор, ЭлементИсточник.Отбор); КонецЕсли; // В некоторых элементах коллекции необходимо заполнить другие коллекции Если ТипЗнч(ЭлементИсточник) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда СкопироватьЭлементы(ЭлементПриемник, ЭлементИсточник); ИначеЕсли ТипЗнч(ЭлементИсточник) = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда СкопироватьЭлементы(ЭлементПриемник, ЭлементИсточник); ИначеЕсли ТипЗнч(ЭлементИсточник) = Тип("ПользовательскоеПолеВыборКомпоновкиДанных") Тогда СкопироватьЭлементы(ЭлементПриемник.Варианты, ЭлементИсточник.Варианты); ИначеЕсли ТипЗнч(ЭлементИсточник) = Тип("ПользовательскоеПолеВыражениеКомпоновкиДанных") Тогда ЭлементПриемник.УстановитьВыражениеДетальныхЗаписей (ЭлементИсточник.ПолучитьВыражениеДетальныхЗаписей()); ЭлементПриемник.УстановитьВыражениеИтоговыхЗаписей(ЭлементИсточник.ПолучитьВыражениеИтоговыхЗаписей()); ЭлементПриемник.УстановитьПредставлениеВыраженияДетальныхЗаписей(ЭлементИсточник.ПолучитьПредставлениеВыраженияДетальныхЗаписей ()); ЭлементПриемник.УстановитьПредставлениеВыраженияИтоговыхЗаписей(ЭлементИсточник.ПолучитьПредставлениеВыраженияИтоговыхЗаписей ()); КонецЕсли; КонецЦикла; КонецПроцедуры &НаСервере Процедура ЗаполнитьЭлементы(ПриемникЗначения, ИсточникЗначения, ПервыйУровень = Неопределено) Если ТипЗнч(ПриемникЗначения) = Тип("КоллекцияЗначенийПараметровКомпоновкиДанных") Тогда КоллекцияЗначений = ИсточникЗначения; Иначе КоллекцияЗначений = ИсточникЗначения.Элементы; КонецЕсли; Для каждого ЭлементИсточник Из КоллекцияЗначений Цикл Если ПервыйУровень = Неопределено Тогда ЭлементПриемник = ПриемникЗначения.НайтиЗначениеПараметра(ЭлементИсточник.Параметр); Иначе ЭлементПриемник = ПервыйУровень.НайтиЗначениеПараметра(ЭлементИсточник.Параметр); КонецЕсли; Если ЭлементПриемник = Неопределено Тогда Продолжить; КонецЕсли; ЗаполнитьЗначенияСвойств(ЭлементПриемник, ЭлементИсточник); Если ТипЗнч(ЭлементИсточник) = Тип("ЗначениеПараметраКомпоновкиДанных") Тогда Если ЭлементИсточник.ЗначенияВложенныхПараметров.Количество() <> 0 Тогда ЗаполнитьЭлементы(ЭлементПриемник.ЗначенияВложенныхПараметров, ЭлементИсточник.ЗначенияВложенныхПараметров, ПриемникЗначения); КонецЕсли; КонецЕсли; КонецЦикла; КонецПроцедуры &НаСервере // Процедура удаляет все элементы настройки компоновки данных из объекта // Процедура ОчиститьНастройкиКомпоновкиДанных(Настройки) Если Настройки = Неопределено Или ТипЗнч(Настройки) <> Тип("НастройкиКомпоновкиДанных") Тогда Возврат; КонецЕсли; Для каждого Параметр Из Настройки.ПараметрыДанных.Элементы Цикл Параметр.Значение = Неопределено; Параметр.Использование = Ложь; КонецЦикла; Для каждого Параметр Из Настройки.ПараметрыВывода.Элементы Цикл Параметр.Использование = Ложь; КонецЦикла; Настройки.ПользовательскиеПоля.Элементы.Очистить(); Настройки.Отбор.Элементы.Очистить(); Настройки.Порядок.Элементы.Очистить(); Настройки.Выбор.Элементы.Очистить(); Настройки.Структура.Очистить(); КонецПроцедуры &НаСервере // Копирует настройки компоновки данных // Процедура СкопироватьНастройкиКомпоновкиДанных(НастройкиПриемник, НастройкиИсточник) Если НастройкиИсточник = Неопределено Тогда Возврат; КонецЕсли; Если ТипЗнч(НастройкиПриемник) = Тип("НастройкиКомпоновкиДанных") Тогда Для каждого Параметр Из НастройкиИсточник.ПараметрыДанных.Элементы Цикл ЗначениеПараметра = НастройкиПриемник.ПараметрыДанных.НайтиЗначениеПараметра(Параметр.Параметр); Если ЗначениеПараметра <> Неопределено Тогда ЗаполнитьЗначенияСвойств(ЗначениеПараметра, Параметр); КонецЕсли; КонецЦикла; КонецЕсли; Если ТипЗнч(НастройкиИсточник) = Тип("НастройкиВложенногоОбъектаКомпоновкиДанных") Тогда ЗаполнитьЗначенияСвойств(НастройкиПриемник, НастройкиИсточник); СкопироватьНастройкиКомпоновкиДанных(НастройкиПриемник.Настройки, НастройкиИсточник.Настройки); Возврат; КонецЕсли; // Копирование настроек Если ТипЗнч(НастройкиИсточник) = Тип("НастройкиКомпоновкиДанных") Тогда ЗаполнитьЭлементы(НастройкиПриемник.ПараметрыДанных, НастройкиИсточник.ПараметрыДанных); СкопироватьЭлементы(НастройкиПриемник.ПользовательскиеПоля, НастройкиИсточник.ПользовательскиеПоля); СкопироватьЭлементы(НастройкиПриемник.Отбор, НастройкиИсточник.Отбор); СкопироватьЭлементы(НастройкиПриемник.Порядок, НастройкиИсточник.Порядок); КонецЕсли; Если ТипЗнч(НастройкиИсточник) = Тип("ГруппировкаКомпоновкиДанных") Или ТипЗнч(НастройкиИсточник) = Тип("ГруппировкаТаблицыКомпоновкиДанных") Или ТипЗнч(НастройкиИсточник) = Тип("ГруппировкаДиаграммыКомпоновкиДанных") Тогда СкопироватьЭлементы(НастройкиПриемник.ПоляГруппировки, НастройкиИсточник.ПоляГруппировки); СкопироватьЭлементы(НастройкиПриемник.Отбор, НастройкиИсточник.Отбор); СкопироватьЭлементы(НастройкиПриемник.Порядок, НастройкиИсточник.Порядок); ЗаполнитьЗначенияСвойств(НастройкиПриемник, НастройкиИсточник); КонецЕсли; СкопироватьЭлементы(НастройкиПриемник.Выбор, НастройкиИсточник.Выбор); СкопироватьЭлементы(НастройкиПриемник.УсловноеОформление, НастройкиИсточник.УсловноеОформление); ЗаполнитьЭлементы(НастройкиПриемник.ПараметрыВывода, НастройкиИсточник.ПараметрыВывода); // Копирование структуры Если ТипЗнч(НастройкиИсточник) = Тип("НастройкиКомпоновкиДанных") Или ТипЗнч(НастройкиИсточник) = Тип("ГруппировкаКомпоновкиДанных") Тогда Для каждого ЭлементСтруктурыИсточник Из НастройкиИсточник.Структура Цикл ЭлементСтруктурыПриемник = НастройкиПриемник.Структура.Добавить(ТипЗнч(ЭлементСтруктурыИсточник)); СкопироватьНастройкиКомпоновкиДанных(ЭлементСтруктурыПриемник, ЭлементСтруктурыИсточник); КонецЦикла; КонецЕсли; Если ТипЗнч(НастройкиИсточник) = Тип("ГруппировкаТаблицыКомпоновкиДанных") Или ТипЗнч(НастройкиИсточник) = Тип("ГруппировкаДиаграммыКомпоновкиДанных") Тогда Для каждого ЭлементСтруктурыИсточник Из НастройкиИсточник.Структура Цикл ЭлементСтруктурыПриемник = НастройкиПриемник.Структура.Добавить(); СкопироватьНастройкиКомпоновкиДанных(ЭлементСтруктурыПриемник, ЭлементСтруктурыИсточник); КонецЦикла; КонецЕсли; Если ТипЗнч(НастройкиИсточник) = Тип("ТаблицаКомпоновкиДанных") Тогда Для каждого ЭлементСтруктурыИсточник Из НастройкиИсточник.Строки Цикл ЭлементСтруктурыПриемник = НастройкиПриемник.Строки.Добавить(); СкопироватьНастройкиКомпоновкиДанных(ЭлементСтруктурыПриемник, ЭлементСтруктурыИсточник); КонецЦикла; Для каждого ЭлементСтруктурыИсточник Из НастройкиИсточник.Колонки Цикл ЭлементСтруктурыПриемник = НастройкиПриемник.Колонки.Добавить(); СкопироватьНастройкиКомпоновкиДанных(ЭлементСтруктурыПриемник, ЭлементСтруктурыИсточник); КонецЦикла; КонецЕсли; Если ТипЗнч(НастройкиИсточник) = Тип("ДиаграммаКомпоновкиДанных") Тогда Для каждого ЭлементСтруктурыИсточник Из НастройкиИсточник.Серии Цикл ЭлементСтруктурыПриемник = НастройкиПриемник.Серии.Добавить(); СкопироватьНастройкиКомпоновкиДанных(ЭлементСтруктурыПриемник, ЭлементСтруктурыИсточник); КонецЦикла; Для каждого ЭлементСтруктурыИсточник Из НастройкиИсточник.Точки Цикл ЭлементСтруктурыПриемник = НастройкиПриемник.Точки.Добавить(); СкопироватьНастройкиКомпоновкиДанных(ЭлементСтруктурыПриемник, ЭлементСтруктурыИсточник); КонецЦикла; КонецЕсли; КонецПроцедуры &НаСервере //Сохраняет настройки схемы компоновки // Процедура СохранитьНастройки() КомпоновщикНастроек.Восстановить(); СКД = ПолучитьИзВременногоХранилища(АдресСКД); НастройкиСКД = СКД.НастройкиПоУмолчанию; НастройкиКомпоновщика = КомпоновщикНастроек.ПолучитьНастройки(); ОчиститьНастройкиКомпоновкиДанных(НастройкиСКД); СкопироватьНастройкиКомпоновкиДанных(НастройкиСКД, НастройкиКомпоновщика); АдресСКД = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор); КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) //crack start crack end// CRM_ЗащитаСервер.ПолучитьЗащищеннуюОбработку().ПриСозданиеНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка); АдресСКД = Параметры.АдресСКД; СКД = ПолучитьИзВременногоХранилища(АдресСКД); Если СКД <> Неопределено Тогда КомпоновщикНастроек.Инициализировать( Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСКД) ); КомпоновщикНастроек.ЗагрузитьНастройки(СКД.НастройкиПоУмолчанию); КомпоновщикНастроек.Восстановить(); КонецЕсли; КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ ОСТАЛЬНЫХ ЭЛЕМЕНТОВ УПРАВЛЕНИЯ ФОРМЫ &НаКлиенте Процедура ЗавершитьРедактирование(Команда) СохранитьНастройки(); СтруктураВозврата = Новый Структура; СтруктураВозврата.Вставить("АдресСКД", АдресСКД); Закрыть(СтруктураВозврата); КонецПроцедуры И приоткрытии закрытии тоже нет. |
|||
94
alxxsssar
02.02.12
✎
14:18
|
вот и заполняй, там скорее всего диалог выбора файла
|
|||
95
Лис Локи
02.02.12
✎
14:21
|
отсылаю к (84) полазай по самой форме настроек, по свойствам всех полей найди эту долбаную "АдресСРМ" и глянь, какая надпись около него стоит на форме
Нет, там не пусто. Там вообще какая-то левая форма с двумя memo-подобными полями и одной кнопочкой ОКэй. |
|||
96
alxxsssar
02.02.12
✎
14:22
|
можешь обработку на почту прислать?
|
|||
97
Лис Локи
02.02.12
✎
14:25
|
С удовольствием, скажи только как.
|
|||
98
Лис Локи
02.02.12
✎
14:25
|
Без проблем, скажи только как.
|
|||
99
extrim-style
02.02.12
✎
14:26
|
(95) ну вот же присвоение - АдресСКД = Параметры.АдресСКД;
Поставь там точку и запусти обработку в пользовательском режиме, как написано в (5), и по Shift+F9 посмотри содержание Параметры.АдресСКД или Параметры вообще. |
|||
100
alxxsssar
02.02.12
✎
14:28
|
в конфигураторе плавой клавишей на обработкук -> сохранить как внешнюю обработку, отчет, выбираешь место и вуаля. отошли на [email protected]
|
|||
101
Лис Локи
02.02.12
✎
14:33
|
(100) посылаю.
(99) В том то и дело, что не переключается оно, не останавливается. И Shift+F9 никакой реакции не вызывает. |
|||
102
extrim-style
02.02.12
✎
14:41
|
(101) ну а ты обработку в пользовательском режиме запускаешь?
|
|||
103
Лис Локи
02.02.12
✎
14:47
|
Как же я её запущу, если форма её даже не вызывается, а ошибку выдает?
|
|||
104
alxxsssar
02.02.12
✎
14:49
|
получил
|
|||
105
Лис Локи
02.02.12
✎
14:50
|
Надеюсь то, что нужно отправил.
|
|||
106
alxxsssar
02.02.12
✎
14:52
|
вроде да
|
|||
107
extrim-style
02.02.12
✎
14:54
|
(103) не знаю, что там за конфа. Через Операции - Обработки в пользовательском режиме, что нельзя?
|
|||
108
Лис Локи
02.02.12
✎
15:00
|
> Через Операции - Обработки в пользовательском режиме, что нельзя?
Подробнее, пожалуйста. |
|||
109
alxxsssar
02.02.12
✎
15:04
|
а что за конфа, правда, а то у меня не открывается. совсем
|
|||
110
extrim-style
02.02.12
✎
15:05
|
(108) ну в пользовательском режиме в меню есть доступ к обработкам?
|
|||
111
Лис Локи
02.02.12
✎
15:05
|
Ох, чувствую себя полнейшим идиотом. Что означает конфа?
|
|||
112
Лис Локи
02.02.12
✎
15:06
|
Я не знаю как запустить пользовательский режим, простите меня.
Ох, было весело, расходимся до завтра. Спасибо за то, что возились со мной. |
|||
113
alxxsssar
02.02.12
✎
15:07
|
конфигурация какая. через "Справка" - "О программе" можно посмотреть
|
|||
114
Лис Локи
03.02.12
✎
05:01
|
Доброе утро всем, через час я буду на работе и шоу маст гоу он.
|
|||
115
Лис Локи
03.02.12
✎
06:09
|
Конфигурация:
1С:CRM СТАНДАРТ, редакция 1.0 (1.0.6.2) Copyright © ООО "1C", 2011. Все права защищены (http://www.1c.ru) |
|||
116
Лис Локи
03.02.12
✎
08:03
|
Наименование: CRM
Режим: Файловый |
|||
117
Fish
03.02.12
✎
09:22
|
(114) Запасся попкорном :)))
|
|||
118
Лис Локи
03.02.12
✎
09:23
|
Ок, только что-то все дрессировщики разбежались, а через полчаса я либо забью на это (и мне дадут ещё более увлекательную задачу в 1С), либо кто-то придет и даст дельный совет здесь.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |