Имя: Пароль:
1C
1С v8
Как задать тип реквизита при выборе?
,
0 Мисти
 
19.03.19
20:56
Документ-основание может быть 4 типов, но если он не выбран, но выбрать его можно только одного типа.
Как это ограничить?
Процедура ДокументОснованиеНачалоВыбора(Элемент, СтандартнаяОбработка)
Если Элемент.Значение = Неопределено Тогда    

и как тип определить? Чтобы избавиться от предложения выбрать тип один из 4?
1 lubitelxml
 
19.03.19
21:01
ОписаниеТипа = Новый ОписаниеТипов("Число");
ПолеВвода1 = ОписаниеТипа.ПривестиЗначение(ПолеВвода1);
ЭлементыФормы.ПолеВвода1.ВыбиратьТип = Ложь;

вместо "Число" напиши ДокументСсылка.Х
2 Мисти
 
19.03.19
21:03
Вах. Спасибо.
3 Мимохожий Однако
 
19.03.19
21:06
ОФФ: Миста-СП рулит
4 Мисти
 
19.03.19
21:11
Там всё самодельное, открывается документ, форма "список выбора", но кнопки "выбрать там нет. Это тоже надо как-то руками писать?
5 palsergeich
 
19.03.19
21:12
(4) да
ищи свойство ограничение т\ипа
6 Мисти
 
19.03.19
21:22
Ограничит тип удалось, даже отбор сработал. Вижу свой документ, но не могу его выбрать!
Нет такой кнопке в списке выбора. Я думала - "оно само!"
7 Мисти
 
19.03.19
21:53
Вставила стандартную кнопку "выбрать", но она не работает.
Всё равно - открывается документ на просмотр.
8 palsergeich
 
19.03.19
23:05
(7) Ты тформу списка или выбора открыла?
10 Мисти
 
20.03.19
01:32
Всё равно документ не выбирается, а открывается!
ФормаВыбора =Документы.ОбъектныйЛист.ПолучитьФормуВыбора(,Элемент,);


ОтборЭлемента=ФормаВыбора.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Контрагент");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Контрагент;


ФормаВыбора.ОткрытьМодально();
11 Mankubus
 
20.03.19
06:04
(10) почитай в СП про РежимВыбора
12 Мимохожий Однако
 
20.03.19
07:31
(11) ОФФ. Ты с ума сошёл? ))
13 Мисти
 
20.03.19
22:02
ау?
14 Мисти
 
20.03.19
22:08
Спасибище!!! (11)
15 Мимохожий Однако
 
20.03.19
23:08
(14) Ты меня порадовала этим
16 Мисти
 
21.03.19
22:48
&НаСервере
Процедура КонтрагентОбработкаВыбораНаСервере()
    КурирующийМенеджер = Rem.ПолучитьОсновногоМенеджераПокупателя(, Объект.Контрагент);
    Объект.КурирующийМенеджер = КурирующийМенеджер.ФизЛицо;
    Объект.МенеджерПоПродажам = КурирующийМенеджер.ФизЛицо;// Юля март 2019
КонецПроцедуры

&НаКлиенте
Процедура КонтрагентОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    КонтрагентОбработкаВыбораНаСервере();
КонецПроцедуры

Пришла беда, откуда не ждали.
Почему-то перестала программа попадать "на сервер", и, вроде, дело не в отладчике - ни так и ни сяк - не отрабатывает.
17 palsergeich
 
21.03.19
22:52
(16) По листингу очень похоже именно на отладку.
Почисти кеш, бывает такое.
18 Мисти
 
21.03.19
22:56
В копии попадает, а в рабочей версии нет.
19 palsergeich
 
21.03.19
22:58
(18) Ну а кто тебе сказал что в рабочей базе включена отладка?
+ чистку кеша таки сделай
20 palsergeich
 
21.03.19
22:59
Точнее включена отладка на сервере
21 Мисти
 
21.03.19
23:02
Так и не попадает и не отрабатывает.
22 palsergeich
 
21.03.19
23:03
Поставь точку останова в модуле сеанса и перезапусти отладку.
Если остановится - значит отладка на сервере есть. Давай начнем с этого
23 Мисти
 
21.03.19
23:18
Ага, может, и отключили - то включают, то выключают.
24 palsergeich
 
21.03.19
23:22
(23) Но рекомендую кеш почистить, просто удали базу из списка и добавь, редко но бывает, что изза кеша отладка не работает
25 Мисти
 
21.03.19
23:25
Ну не важно - попадает-не попадает - не отрабатывает кусочек на рабочем сервере. А на запасном - пожалуйста.
26 palsergeich
 
21.03.19
23:28
(25) Может он и отрабатывает, но вот этот кусок Rem.ПолучитьОсновногоМенеджераПокупателя(, Объект.Контрагент) возвращает не то что на тестовом
27 palsergeich
 
21.03.19
23:29
Например пустую ссылку и тогда будет казаться что код не работает
28 Мисти
 
21.03.19
23:30
Так по тому же объекту! Пока загадки одни.
29 palsergeich
 
21.03.19
23:32
(28) И что, я же не вижу что там в коде Rem.ПолучитьОсновногоМенеджераПокупателя(, Объект.Контрагент)
Но по своему опыту - обращение к какому нибудь регистру сведений.
А там к примеру сегодня этого менеждера уволили или перевели и привет пустая ссылка
30 Мисти
 
21.03.19
23:33
Теоретически - да, но практически - нет.
31 Мисти
 
21.03.19
23:34
И, главное, там тоже работала 2 дня назад! И я в тот документ лазила, но не в этом месте!
Убей, не пойму, что могло случиться.
32 palsergeich
 
21.03.19
23:35
(30) Я не могу с Вами на эту тему спорить, потому что не вижу листинга.
Но могу Вас заверить, что чудес не бывает. Если код залит в базу и база обновлена - то ищи разницу в данных.
Экзотику пока не рассматриваем, там как правило не одно место отваливается.
33 palsergeich
 
21.03.19
23:35
Есть еще вариан с расширениями)
34 Мисти
 
21.03.19
23:52
Попроще вопрос! Как мне получить таблицу товаров текущую? До сохранения?
Т.е. Объект.Товары - не годится.
35 palsergeich
 
21.03.19
23:53
Событие передЗаписью запрос в БД. Там будут лежать данные до модификации документа
36 palsergeich
 
21.03.19
23:54
Ну или любой момент ДО сохранения запросом.
37 Мисти
 
22.03.19
00:00
Товары.Выгрузить(,"ХарактеристикаНоменклатуры,Номенклатура, Количество") - не то.
Надо как-то из формы.
38 Мисти
 
22.03.19
00:00
Мне наоборот нужно что я вижу, а не что сохранено.
39 Мисти
 
22.03.19
00:03
ЭтаФорма.Товары - тоже дает то, что уже сохранено.
40 palsergeich
 
22.03.19
00:04
Давай уточним.
В какой момент тебе это надо?
41 palsergeich
 
22.03.19
00:05
Вот есть какой то документ.
Ты внесла туда изменения
Нажала кнопку сохранить
работаешь дальше

В какой момент времени ты находишься и что то хочешь узнать?
42 Мисти
 
22.03.19
00:13
Я еще не нажала кнопку сохранить (ну или нажала), и мне нужно до сохранения проверить количество товара в таблице. А вообще, его нужно проверять при каждом изменении строчки. По всему документу.
43 Мисти
 
22.03.19
00:23
Товары.Выгрузить(,"ХарактеристикаНоменклатуры,Номенклатура, Количество") - вроде, нормально, это я что-то путаю.
44 palsergeich
 
22.03.19
00:32
Запрос = Новый Запрос;
Запрос.Текст = "Выбрать * из Документы.МойДокумент.имяТЧ где Ссылка = &Ссылка"
Запрос.УстановитьПараметр("Ссылка", объект.Ссылка);
ТаблицаДо = Запрос.Выполнить().Выгрузить();
45 palsergeich
 
22.03.19
00:33
Это если от руки по быстрому
46 Dmitriy_
Kolesnikov
 
22.03.19
10:09
А не проще при открытии документа в дополнительные свойства копировать табличные части, а в обработке заполнения уже с этими сохраненными заранее таблицами сравнивать?