Имя: Пароль:
1C
1С v8
Хранилище значений 8,2
,
0 KonstantinK90
 
22.10.15
11:59
Добрый день! помогите с вопросом! при изменении подразделения написан вот такой код
Процедура ОбновитьОтветственныхВСоответствииСНастройками()
    
    ОтветственныеПоПутевомуЛисту = Неопределено;
    
    РСНЗ = РегистрыСведений.СохраненныеНастройки.СоздатьНаборЗаписей();
    РСНЗ.Отбор.ИмяОбъекта.Установить("ОтветственныеПоПутевомуЛисту");
    РСНЗ.Отбор.НаименованиеНастройки.Установить("ОтветственныеПоПутевомуЛисту");

    РСНЗ.Прочитать();
    Если РСНЗ.Количество() > 0 Тогда
        ОтветственныеПоПутевомуЛисту = РСНЗ.Получить(0).СохраненнаяНастройка.Получить().Скопировать();
    КонецЕсли;
    
    Если ОтветственныеПоПутевомуЛисту = Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    Отбор = Новый Структура("Подразделение", Подразделение);
    НайденныеСтроки = ОтветственныеПоПутевомуЛисту.НайтиСтроки(Отбор);
    Если НЕ НайденныеСтроки.Количество() = 0 Тогда
        ОсмотрелВрач     = НайденныеСтроки[0].ОсмотрелВрач;
        ВыдалДиспетчер     = НайденныеСтроки[0].ВыдалДиспетчер;
        ВыпустилМеханик = НайденныеСтроки[0].ВыпустилМеханик;
        ПринялДиспетчер = НайденныеСтроки[0].ПринялДиспетчер;
        ПринялМеханик     = НайденныеСтроки[0].ПринялМеханик;
    КонецЕсли;
    
    ОбновитьТаблицуОтветственных();
    
КонецПроцедуры

он работает но стала задача изменить диспетчера как это сделать где эти значения хранятся не могу понять.
1 KonstantinK90
 
22.10.15
12:04
в конкретном подразделении изменился диспетчер как для необходимого подразделения поменять диспетчера
2 Рэйв
 
22.10.15
12:07
ТЗ лежит в хранилище СохраненнаяНастройка в регистре сведений
СохраненныеНастройки.
3 KonstantinK90
 
22.10.15
12:09
это я вижу что она там лежит как мне поменять значение в этой ТЗ
я же не могу как справочник окрыть и поменять физ.Лицо
4 Рэйв
 
22.10.15
12:10
(3)Чтото то же туда  эту ТЗ положило? Вот тем же самым положи изменения
5 KonstantinK90
 
22.10.15
12:13
ну да правильно говорите а как узнать чем туда положили изменения
6 Рэйв
 
22.10.15
12:15
(5)Или смотри регистраторы или ищи глобальным поиском
"РегистрыСведений.СохраненныеНастройки" к каких модулях упоминается
7 Рэйв
 
22.10.15
12:17
+Вполне возможно что есть форма диалога записи в которую ТЗ поднимается при открытии и тогда и огород городить не надо будет
8 magicSan
 
22.10.15
12:17
РСНЗ.Прочитать();
    Если РСНЗ.Количество() > 0 Тогда
        ОтветственныеПоПутевомуЛисту = РСНЗ.Получить(0).СохраненнаяНастройка.Получить();
//хапнули тз в ней ищи меняй
и далее  пихай обратно чота типа
рсзн[0]=ОтветственныеПоПутевомуЛисту ;
записать(истина);
    КонецЕсли;
9 KonstantinK90
 
22.10.15
12:33
чет ни чего найти не могу есть еще какие нибудь мысли
10 Рэйв
 
22.10.15
12:35
(9)Есть мысль, что ты плохо ишешь.
11 KonstantinK90
 
22.10.15
12:59
у моего регистра вообще нет ни одного регистратора
12 Рэйв
 
22.10.15
13:02
(11)Я это подозревал.
В форме записи ТЗ не поднимается? По идее должна.
13 KonstantinK90
 
22.10.15
13:05
нет не поднимается
я чет вообще прям в затруднении что делать
14 Лефмихалыч
 
22.10.15
13:12
(0) запиши в сохраненные настройку таблицу значений с правильным диспетчером. Обработкой. Которую надо написать в конфигураторе. Руками.
15 KonstantinK90
 
22.10.15
13:19
в чем дело пишу вот так не хочет перезаписывать
РСНЗ = РегистрыСведений.СохраненныеНастройки.СоздатьНаборЗаписей();
    РСНЗ.Отбор.ИмяОбъекта.Установить("ОтветственныеПоПутевомуЛисту");
    РСНЗ.Отбор.НаименованиеНастройки.Установить("ОтветственныеПоПутевомуЛисту");

    РСНЗ.Прочитать();
     Если РСНЗ.Количество() > 0 Тогда
        ОтветственныеПоПутевомуЛисту = РСНЗ.Получить(0).СохраненнаяНастройка.Получить();
        Для Каждого Стр Из ОтветственныеПоПутевомуЛисту Цикл
            Если Стр.Подразделение = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000015") Тогда
                 Стр.ОсмотрелВрач  = Справочники.ФизическиеЛица.НайтиПоКоду("002300    ");
            КонецЕсли;    
        КонецЦикла;
    РСНЗ.Записать();
     КонецЕсли;
16 KonstantinK90
 
22.10.15
13:40
что я делаю не правильно?
17 singlych
 
22.10.15
13:44
таблицу обратно в хранилище положи
18 KonstantinK90
 
22.10.15
13:53
как?
19 KonstantinK90
 
22.10.15
13:54
блин с хранилищем не когда дело не имел не знаю как ?
20 singlych
 
22.10.15
13:56
ТвоеХранилище = Новый ХранилищеЗначений(ЧеТыТамХочешьПоложить);
21 KonstantinK90
 
22.10.15
14:00
ну вот куда это вставить
РСНЗ = РегистрыСведений.СохраненныеНастройки.СоздатьНаборЗаписей();
    РСНЗ.Отбор.ИмяОбъекта.Установить("ОтветственныеПоПутевомуЛисту");
    РСНЗ.Отбор.НаименованиеНастройки.Установить("ОтветственныеПоПутевомуЛисту");

    РСНЗ.Прочитать();
     Если РСНЗ.Количество() > 0 Тогда
        ОтветственныеПоПутевомуЛисту = РСНЗ.Получить(0).СохраненнаяНастройка.Получить();
        Для Каждого Стр Из ОтветственныеПоПутевомуЛисту Цикл
            Если Стр.Подразделение = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000015") Тогда
                 Стр.ОсмотрелВрач  = Справочники.ФизическиеЛица.НайтиПоКоду("002300    ");
            КонецЕсли;    
        КонецЦикла;
    РСНЗ.Записать();
     КонецЕсли;
22 KonstantinK90
 
22.10.15
14:00
ваш код
23 singlych
 
22.10.15
14:05
Ну е-мое. Ну вот смотри. Вот ты взял хранилище, и получил из него таблицу. Потом поменял что-то в таблице. Теперь тебе надо таблицу положить обратно в то хранилище, откуда ты ее взял. Куда бы ты это вставил?
24 KonstantinK90
 
22.10.15
14:07
туда же от куда и взял
25 KonstantinK90
 
22.10.15
14:08
мне то нужно взять хранилище значений с отбором как я выше писал изменить и вставить обратно а как это сделать не знаю!
26 singlych
 
22.10.15
14:11
Ну, ты понимаешь, где у тебя хранилище?
27 KonstantinK90
 
22.10.15
14:15
не ужели если я бы понимал я бы у вас спрашивал как это реализовать
28 KonstantinK90
 
22.10.15
14:15
я представления не имею как это сделать
29 KonstantinK90
 
22.10.15
14:20
как правильно сделать?
30 KonstantinK90
 
22.10.15
14:22
люди добрые!
31 magicSan
 
22.10.15
14:22
(25) 1. берешь РЕГИСТР
2. ДОстаешь ТЗ
3. меняешь тз
4. кидаешь тз
32 Лефмихалыч
 
22.10.15
14:24
(27) ты не хочешь понимать, ты хочешь, чтобы тебе дали готовый результат
33 KonstantinK90
 
22.10.15
14:26
ладно ок! 4.-как кинуть измененную таблицу обратно
34 magicSan
 
22.10.15
14:26
Книга знаний: Хранилище значения тут тебе про хранилище расписано
35 singlych
 
22.10.15
14:28
(33) в (20) написано, как. а в (2) написано, где у тебя хранилище.
36 KonstantinK90
 
22.10.15
14:34
пишу вот так
РСНЗ = РегистрыСведений.СохраненныеНастройки.СоздатьНаборЗаписей();
    РСНЗ.Отбор.ИмяОбъекта.Установить("ОтветственныеПоПутевомуЛисту");
    РСНЗ.Отбор.НаименованиеНастройки.Установить("ОтветственныеПоПутевомуЛисту");

    РСНЗ.Прочитать();
    Если РСНЗ.Количество() > 0 Тогда
                
        ОтветственныеПоПутевомуЛисту = РСНЗ.Получить(0).СохраненнаяНастройка.Получить();
        
        Для Каждого Стр Из ОтветственныеПоПутевомуЛисту Цикл
            Если Стр.Подразделение = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000015") Тогда
                 Стр.ОсмотрелВрач  = Справочники.ФизическиеЛица.НайтиПоКоду("002300    ");
            КонецЕсли;    
        КонецЦикла;
        

    Хранилище=Новый ХранилищеЗначения(ОтветственныеПоПутевомуЛисту);
    записать();
        
     КонецЕсли;
ругается говорит  Процедура или функция с указанным именем не определена (записать)
37 KonstantinK90
 
22.10.15
14:39
ну в конце концов ну напишете эти 2 строчки сколько можно
38 magicSan
 
22.10.15
14:44
ыхыххы а ты что записываешь то?
39 singlych
 
22.10.15
14:44
Вот, пол-дела уже сделано. Осталось только понять, что должно стоять слева от оператора присваивания. Еще раз намекну на второй пост.
40 magicSan
 
22.10.15
14:44
и в каком месте хранилище кидаешь в настройки?
41 KonstantinK90
 
22.10.15
14:49
????????????????
42 KonstantinK90
 
22.10.15
14:51
блин у меня через 9 мин рабочий день заканчивается может скажите?
43 magicSan
 
22.10.15
14:51
(41)  "записать()" - чо ыт записываешь то?
44 magicSan
 
22.10.15
14:52
те ещё и деньги за это платят??? беспредел
45 singlych
 
22.10.15
14:53
Ладно, последняя попытка: Со-кхм-кхм-ннаяНас-кхм-кхм-ойка.
46 KonstantinK90
 
22.10.15
14:53
сами ссылку скинули вот по примеру и хочу записать -
Процедура СохранитьВХранилищеНажатие(Элемент)
    ТабДок=Новый ТабличныйДокумент;    
    ТабДок.Вывести(ЭлементыФормы.ПолеТабличногоДокумента1);
    Хранилище=Новый ХранилищеЗначения(ТабДок);
    Записать();
КонецПроцедуры
47 magicSan
 
22.10.15
14:55
(46) нук те регистр сведений надо записывать, а перед этим в него закинуть твое хранилище
48 KonstantinK90
 
22.10.15
14:56
ну и как закинуть в рс
49 magicSan
 
22.10.15
14:57
(48) присвоить например...
50 KonstantinK90
 
22.10.15
14:59
РСНЗ = Мои изменения
51 magicSan
 
22.10.15
15:01
(50) ты безнадежен. Открой отладчик и смотри в своем коде где нужный элемент регистра
52 KonstantinK90
 
22.10.15
15:01
чему именно присвоить?
53 magicSan
 
22.10.15
15:02
рсзн[0]=хранилище
рсзн.записать()
54 KonstantinK90
 
22.10.15
15:04
Индексированное значение доступно только для чтения
    РСНЗ[0]=ОтветственныеПоПутевомуЛисту;
55 magicSan
 
22.10.15
15:04
чо?
56 KonstantinK90
 
22.10.15
15:06
РСНЗ = РегистрыСведений.СохраненныеНастройки.СоздатьНаборЗаписей();
    РСНЗ.Отбор.ИмяОбъекта.Установить("ОтветственныеПоПутевомуЛисту");
    РСНЗ.Отбор.НаименованиеНастройки.Установить("ОтветственныеПоПутевомуЛисту");

    РСНЗ.Прочитать();
    Если РСНЗ.Количество() > 0 Тогда
                
        ОтветственныеПоПутевомуЛисту = РСНЗ.Получить(0).СохраненнаяНастройка.Получить();
        
        Для Каждого Стр Из ОтветственныеПоПутевомуЛисту Цикл
            Если Стр.Подразделение = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000015") Тогда
                 Стр.ОсмотрелВрач  = Справочники.ФизическиеЛица.НайтиПоКоду("002300    ");
            КонецЕсли;    
        КонецЦикла;
        
    //Вот ваши строки    
    РСНЗ[0]=ОтветственныеПоПутевомуЛисту;
    РСНЗ.записать()
           
     КонецЕсли;
57 KonstantinK90
 
22.10.15
15:06
ошибку выдает
58 magicSan
 
22.10.15
15:06
РСНЗ.очистить()
РСНЗ.записать()


а если тиак?
59 KonstantinK90
 
22.10.15
15:07
очистить в каком месте написать?
60 magicSan
 
22.10.15
15:09
С тебя весь офис под столом =)))
61 magicSan
 
22.10.15
15:10
РСНЗ = РегистрыСведений.СохраненныеНастройки.СоздатьНаборЗаписей();
    РСНЗ.Отбор.ИмяОбъекта.Установить("ОтветственныеПоПутевомуЛисту");
    РСНЗ.Отбор.НаименованиеНастройки.Установить("ОтветственныеПоПутевомуЛисту");

    РСНЗ.Прочитать();
    Если РСНЗ.Количество() > 0 Тогда
                
         кхм=РСНЗ[0];
   ОтветственныеПоПутевомуЛисту =кхм.СохраненнаяНастройка.Получить();    
        Для Каждого Стр Из ОтветственныеПоПутевомуЛисту Цикл
            Если Стр.Подразделение = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000015") Тогда
                 Стр.ОсмотрелВрач  = Справочники.ФизическиеЛица.НайтиПоКоду("002300    ");
            КонецЕсли;    
        КонецЦикла;
        
    //Вот ваши строки    

    кхм=ОтветственныеПоПутевомуЛисту;
    РСНЗ.записать()
          
     КонецЕсли;
62 magicSan
 
22.10.15
15:11
а не кхм.СохраненнаяНастройка=ОтветственныеПоПутевомуЛисту
РСНЗ.записать()
63 magicSan
 
22.10.15
15:11
чот типа такого
64 singlych
 
22.10.15
15:12
(62) уже все забыли, что там ХЗ а не ТЗ?
65 magicSan
 
22.10.15
15:12
(54)   или заменить одну строчку РСНЗ[0].СохраненнаяНастройка=ОтветственныеПоПутевомуЛисту;
66 magicSan
 
22.10.15
15:12
(64) ахахахах он же делал хз
67 magicSan
 
22.10.15
15:13
чо хз где твоя тз
68 singlych
 
22.10.15
15:14
тз в хз
69 magicSan
 
22.10.15
15:15
тз в хз , хз в рг
70 magicSan
 
22.10.15
15:15
ну лучше всё таки отчистить =)
71 KonstantinK90
 
22.10.15
15:16
нет все заработало спасибо как вы написали
РСНЗ = РегистрыСведений.СохраненныеНастройки.СоздатьНаборЗаписей();
    РСНЗ.Отбор.ИмяОбъекта.Установить("ОтветственныеПоПутевомуЛисту");
    РСНЗ.Отбор.НаименованиеНастройки.Установить("ОтветственныеПоПутевомуЛисту");

    РСНЗ.Прочитать();
    Если РСНЗ.Количество() > 0 Тогда
                
         кхм=РСНЗ[0];
   ОтветственныеПоПутевомуЛисту =кхм.СохраненнаяНастройка.Получить();    
        Для Каждого Стр Из ОтветственныеПоПутевомуЛисту Цикл
            Если Стр.Подразделение = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000015") Тогда
                 Стр.ОсмотрелВрач  = Справочники.ФизическиеЛица.НайтиПоКоду("002300    ");
            КонецЕсли;    
        КонецЦикла;
        
    //Вот ваши строки    


    кхм=ОтветственныеПоПутевомуЛисту;
    РСНЗ.записать()
          
     КонецЕсли;
72 magicSan
 
22.10.15
15:16
ты вс удалил =(((
73 KonstantinK90
 
22.10.15
15:17
Блин сколько времени у меня это занело это просто ужас
все спасибо удачно дня всем я домой полетел!
74 KonstantinK90
 
22.10.15
15:17
что такое вс?
75 magicSan
 
22.10.15
15:17
завтра лучше не приходи на работу
76 KonstantinK90
 
22.10.15
15:18
что такое?
77 singlych
 
22.10.15
15:19
да норм, он же не кхм записал
78 singlych
 
22.10.15
15:20
(73) удачи, завтра продолжим
79 magicSan
 
22.10.15
15:20
(77) а ну точно ... завтар будет чистить )
80 KonstantinK90
 
22.10.15
15:20
и все же в чем дело
81 magicSan
 
22.10.15
15:22
перед записать

РСНЗ[0].СохраненнаяНастройка=ОтветственныеПоПутевомуЛисту
82 singlych
 
22.10.15
15:22
ты же в (36) уже был близок к успеху
а потом забил на хранилище
83 magicSan
 
22.10.15
15:22
тока ХЗ!!!
84 KonstantinK90
 
23.10.15
06:42
всем привет ! продолжение темы чет не работает оказывается
как вы мне сказали сделать
РСНЗ = РегистрыСведений.СохраненныеНастройки.СоздатьНаборЗаписей();
    РСНЗ.Отбор.ИмяОбъекта.Установить("ОтветственныеПоПутевомуЛисту");
    РСНЗ.Отбор.НаименованиеНастройки.Установить("ОтветственныеПоПутевомуЛисту");

    РСНЗ.Прочитать();
    Если РСНЗ.Количество() > 0 Тогда
                
         кхм=РСНЗ[0];
   ОтветственныеПоПутевомуЛисту =кхм.СохраненнаяНастройка.Получить();    
        Для Каждого Стр Из ОтветственныеПоПутевомуЛисту Цикл
            Если Стр.Подразделение = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000015") Тогда
                 Стр.ОсмотрелВрач  = Справочники.ФизическиеЛица.НайтиПоКоду("002300    ");
            КонецЕсли;    
        КонецЦикла;
        
    //Вот ваши строки    


    кхм=ОтветственныеПоПутевомуЛисту;
    РСНЗ.записать()
          
     КонецЕсли;
85 magicSan
 
23.10.15
06:53
(36) +
рсзн[0].СохраненнаяНастройка=ХранилищеЗначения(ОтветственныеПоПутевомуЛисту);
   рсзн.записать();
86 magicSan
 
23.10.15
06:55
на работу пришел как я а уходишь раньше на час что за дела?
87 magicSan
 
23.10.15
06:55
и ещё твоя картинка вчера мне мозг пыталась вынести - это ведь гиф у которого просо сменили расширение да?
88 KonstantinK90
 
23.10.15
06:56
Процедура или функция с указанным именем не определена (ХранилищеЗначения)
    РСНЗ[0].СохраненнаяНастройка=<<?>>ХранилищеЗначения(ОтветственныеПоПутевомуЛисту); (Проверка: Толстый клиент (обычное приложение)
89 KonstantinK90
 
23.10.15
06:57
нет я уже как час на работе
90 magicSan
 
23.10.15
06:58
новый ХЗ
91 magicSan
 
23.10.15
06:58
новый ХранилищеЗначения(ОтветственныеПоПутевомуЛисту);
92 KonstantinK90
 
23.10.15
07:03
о точно вроде заработало. Спасибо!
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс