|
Подскажите как программно изменить значение в поле ввода? | ☑ | ||
---|---|---|---|---|
0
HarDlacK
14.07.16
✎
16:26
|
Задача стоит в том чтоб при нажатии кнопки программно изменить значение в СправочникКлиентыФормаЭлемента в поле ввода СтатусКлиента на одно из СправочникСсылка.СтатусыКлиентов
Программиста 1с уволили за пьянство, а я простой админ сижу ковыряю( |
|||
1
Ёпрст
14.07.16
✎
16:30
|
(0) напейся
|
|||
2
HarDlacK
14.07.16
✎
16:32
|
Не, мне незя контора повесится...
|
|||
3
Nuobu
14.07.16
✎
16:32
|
(2) А тебе повысили зп после его увпольнения?
|
|||
4
HarDlacK
14.07.16
✎
16:34
|
только кашка обещанка...
|
|||
5
Nuobu
14.07.16
✎
16:34
|
(4) Ну, тогда, когда выплатят, то на доп деньги найми спеца, пусть тебе покажет, как это делается.
|
|||
6
Nuobu
14.07.16
✎
16:34
|
(5) + рассказывай всю задачу.
|
|||
7
ovrfox
14.07.16
✎
16:36
|
Во первых - у тебя управляемые формы или нет?
Скорее всего управляемые - нужно найти реквизит, который отвечает за СправочникКлиентыФормаЭлемента. Это скорее всего Объект.СтатусКлиента. Вот именно ему и нужно назначить нужное значение, но сделать это нужно на сервере. Понятно? |
|||
8
HarDlacK
14.07.16
✎
16:38
|
Реквизит есть СтатусКлиента
|
|||
9
HarDlacK
14.07.16
✎
16:38
|
как назначить значение из СправочникСсылка.СтатусыКлиентов?
|
|||
10
HarDlacK
14.07.16
✎
16:39
|
ну чтоб статус с Кодом такимто выставлялся?
|
|||
11
Nuobu
14.07.16
✎
16:40
|
Объект.СтатусКлиента = Справочники.СтатусыКлиентов.НайтиПоНаименованию("Твоё наименование");
Это го*внокод, конечно, но за те деньги, что ты дополучишь - самое оно! |
|||
12
HarDlacK
14.07.16
✎
16:42
|
спасибо сейчас попробую
|
|||
13
Nuobu
14.07.16
✎
16:42
|
(12) Ты так и не написал УФ, или ОФ. Если не знаешь, то пришли скрин шот.
|
|||
14
ovrfox
14.07.16
✎
16:43
|
Достаточно просто СтатусКлиента = Значение или как в (11) но это должно быть в процедуре, которая выполняется с директивой &НаСервере
|
|||
15
HarDlacK
14.07.16
✎
16:51
|
||||
16
HarDlacK
14.07.16
✎
16:53
|
Не отработал код, кажись 1с не понимает что мне нужно изменить статус именно у этого клиента...
|
|||
17
Nuobu
14.07.16
✎
16:54
|
(16) Опиши, как работает обработка, и выложи еще скриншот её работы.
|
|||
18
FIXXXL
14.07.16
✎
16:54
|
(16) надеюсь ты не в общем списке клиентов надеешься изменить что-то?
|
|||
19
Ёпрст
14.07.16
✎
16:54
|
(16) меню-сервис-ищи обработку групповое изменение реквизитов.
В ней, меняй че хочешь, кодить не надо. |
|||
20
HarDlacK
14.07.16
✎
16:57
|
Обработка берет двух клиентов и сравнивает их http://prntscr.com/bsu10n так вот мне надо тому клиенту что справа поставить программно статус клиента ДУБЛЬ
Процедура кнСлитьНажатие(Элемент) массив = новый массив; Запрос = новый Запрос; Запрос.текст = "ВЫБРАТЬ | ЗаказКлиента.Ссылка |ИЗ | Документ.ЗаказКлиента КАК ЗаказКлиента |ГДЕ | ЗаказКлиента.Клиент = &Клиент"; если нВсе = 0 Тогда Запрос.УстановитьПараметр("Клиент",Клиент2.Ссылка); правильныйЭлемент = Клиент1.ссылка; УдаляемыйЭлемент = Клиент2.ссылка; Иначе Запрос.УстановитьПараметр("Клиент",Клиент1.Ссылка); правильныйЭлемент = Клиент2.ссылка; УдаляемыйЭлемент = Клиент1.ссылка; конецЕсли; РезЗапроса = ВыполнитьЗапросНаСервере(Запрос); Массив = РезЗапроса.Выгрузить().ВыгрузитьКолонку("Ссылка"); массив.Добавить(УдаляемыйЭлемент); ПараметрыСеанса.НеФиксироватьОтветсвенного=Истина; Состояние("Поиск ссылок на удаляемого на клиента"); ТаблицаСсылок = НайтиПоСсылкам(массив); ВыполнитьЗаменуЭлементов(правильныйЭлемент,УдаляемыйЭлемент,ТаблицаСсылок); //Если ВыполнитьЗаменуЭлементов(правильныйЭлемент,УдаляемыйЭлемент,ТаблицаСсылок) Тогда // //СоздатьДвиженияПоРегСвДублиКлиентов(правильныйЭлемент.Ссылка,УдаляемыйЭлемент.Кампейн,УдаляемыйЭлемент.ID_Ввода,УдаляемыйЭлемент.АвторСоздания); // УдаляемыйЭлемент.ПолучитьОбъект().Удалить(); //КонецЕсли; ПараметрыСеанса.НеФиксироватьОтветсвенного=ЛОЖЬ; //Объект.СтатусКлиента = Справочники.СтатусыКлиентов.НайтиПоНаименованию("Дубль"); ЭтаФорма.Закрыть(); КонецПроцедуры |
|||
21
Nuobu
14.07.16
✎
17:03
|
(20) мда. Всё очень плохо.
|
|||
22
Garykom
гуру
14.07.16
✎
17:12
|
(0) Используй AutoIT для веб-клиента
|
|||
23
Garykom
гуру
14.07.16
✎
17:13
|
(21) Почему плохо когда ОФ где можно элементами формы рулить, вот создавать их низзя ))
|
|||
24
ovrfox
14.07.16
✎
17:58
|
(20) У тебя есть процедура ВыполнитьЗаменуЭлементов(правильныйЭлемент,УдаляемыйЭлемент,ТаблицаСсылок)
Вот в ней и нужно устанавливать Покажи ее код |
|||
25
ovrfox
14.07.16
✎
18:00
|
+(24) И кстати, кому собираешься статус менять - правильному элементу или удаляемому?
|
|||
26
Beretta
14.07.16
✎
19:15
|
(0) Микрокредитование?
|
|||
27
youalex
14.07.16
✎
22:13
|
(20) +1. Банда Ответсвенных все больше.
|
|||
28
HarDlacK
15.07.16
✎
09:16
|
Сорри вчера не отписался, свет вырубили) Статус нужно менять удаляемому.
|
|||
29
HarDlacK
15.07.16
✎
09:21
|
ВыполнитьЗаменуЭлементов(правильныйЭлемент,УдаляемыйЭлемент,ТаблицаСсылок);
//Если ВыполнитьЗаменуЭлементов(правильныйЭлемент,УдаляемыйЭлемент,ТаблицаСсылок) Тогда // //СоздатьДвиженияПоРегСвДублиКлиентов(правильныйЭлемент.Ссылка,УдаляемыйЭлемент.Кампейн,УдаляемыйЭлемент.ID_Ввода,УдаляемыйЭлемент.АвторСоздания); // УдаляемыйЭлемент.ПолучитьОбъект().Удалить(); //КонецЕсли; |
|||
30
HarDlacK
15.07.16
✎
09:21
|
но мне не нужно чтоб удаляло клиента, нужно чтоб ему ставило статус Дубль
|
|||
31
HarDlacK
15.07.16
✎
10:37
|
Объект.СтатусКлиента = Справочники.СтатусыКлиентов.НайтиПоНаименованию("Дубль");
не отрабатывает(( |
|||
32
Garykom
гуру
15.07.16
✎
10:41
|
(31) Поймите у Вас легкие пропуски в базовых знаниях об 1С 8. Очень напоминает операцию на гландах через задний проход.
|
|||
33
HarDlacK
15.07.16
✎
10:42
|
Это я отчетливо понимаю) Но операцию нужно провести!)
|
|||
34
Garykom
гуру
15.07.16
✎
10:45
|
(33) Форма это не горло, это 5-я точка. Горло это СправочникОбъект.Записать()
|
|||
35
HarDlacK
15.07.16
✎
10:50
|
Без бутылки точно не разобраться...(
|
|||
36
Мимохожий Однако
15.07.16
✎
11:01
|
(35)Вот теперь ты поймешь спившегося 1С-ника
|
|||
37
HarDlacK
15.07.16
✎
11:07
|
Ну так он то знал на что идет.
|
|||
38
Alloev
15.07.16
✎
11:10
|
Неловко даже прерывать этот троллинг, но напишите уже как-нибудь так:
УдаляемыйЭлемент.ПолучитьОбъект().СтатусКлиента = Справочники.СтатусыКлиентов.НайтиПоНаименованию("Дубль"); УдаляемыйЭлемент.Записать(); |
|||
39
Nuobu
15.07.16
✎
11:12
|
(38) Воу-воу, полегче (Код не правильный и он не заработает).
Человеку пытаются донести, что у него без теории не получится ничего. Вот пусть садится за книги и делает примеры из них, а уже потом - делает на рабочей базе. |
|||
40
Aleksandr N
15.07.16
✎
11:12
|
(0) За пьянство не увольнять, а поощрять нужно.
Поощрять за то, что программист не убивает дебильных пользователей, а просто пьет. |
|||
41
Garykom
гуру
15.07.16
✎
11:20
|
(38) А почему не так:
(УдаляемыйЭлемент.ПолучитьОбъект().СтатусКлиента = Справочники.СтатусыКлиентов.НайтиПоНаименованию("Дубль")).Записать(); ? :) |
|||
42
Garykom
гуру
15.07.16
✎
11:21
|
(41)+ вот терь точно код не рабочий ))
|
|||
43
Alloev
15.07.16
✎
11:30
|
(39) Действительно ерунда, каюсь :) Тогда как-нибудь по-другому:
УдаляемыйЭлементОбъект = УдаляемыйЭлемент.ПолучитьОбъект(); УдаляемыйЭлементОбъект.СтатусКлиента = Справочники.СтатусыКлиентов.НайтиПоНаименованию("Дубль"); УдаляемыйЭлементОбъект.Записать(); Человек же говорит, что он простой админ, может он больше не будет лезть куда не надо. |
|||
44
HarDlacK
15.07.16
✎
11:31
|
Мне просто намекнули что я или в ручную буду это делать или найду способ...(
|
|||
45
Nuobu
15.07.16
✎
11:34
|
(44) Найди программиста-девушку, соблазни её и пусть она тебе поможет. А то нанимать на твою обещанную зп - многовато будет. Сколько надбавка за 1С, если не секрет?
|
|||
46
HarDlacK
15.07.16
✎
11:36
|
её нет, мне вот только обещают мол потянешь будет тебе хорошо
|
|||
47
HarDlacK
15.07.16
✎
11:36
|
За код огромное спасибо! Сработал!
|
|||
48
HarDlacK
15.07.16
✎
11:45
|
Огромнейшее спасибо, по Вашему примеру и другие поля заполнил!
|
|||
49
HarDlacK
15.07.16
✎
12:02
|
Вылезла новая проблема, мне нужно в поле ввода записать текущего пользователя и текущую дату, у меня получается записать туда или только пользователя или только дату( как записать все чтоб в поле стало: Администратор 15.07.2016??
|
|||
50
Nuobu
15.07.16
✎
12:04
|
(49) Поле ввода - это текст и заполняется он в ф-и "ПриОткрытии" или "ПередОткрытием" нужно найти, откуда он тянет значения.
|
|||
51
HarDlacK
15.07.16
✎
12:14
|
сейчас у меня получается записать в поле ввода или текущего
пользователя: Администратор или текущую дату: 15.07.2016 УдаляемыйЭлементОбъект.Ответственный = (ПараметрыСеанса.ТекущийПользователь + НачалоДня(ТекущаяДата())); |
|||
52
HarDlacK
15.07.16
✎
12:14
|
мне бы правильно это написать)
|
|||
53
HarDlacK
15.07.16
✎
12:34
|
Нужно преобразовать эти значения в строку а потом вывести их, как это сделать?
|
|||
54
Alloev
15.07.16
✎
12:36
|
Найдите в конфигурации справочник "Клиенты", откройте в нем форму элемента, найдите там нужное поле ввода, посмотрите его свойства и скажите, что там указано в графе "ПутьКДанным".
|
|||
55
HarDlacK
15.07.16
✎
12:40
|
||||
56
Alloev
15.07.16
✎
12:44
|
В реквизитах справочника есть "Ответственный"?
|
|||
57
Garykom
гуру
15.07.16
✎
12:44
|
(55) Это элемента на форме и к реквизиту объекта не привязано. ручками ручками кодом кодом
|
|||
58
HarDlacK
15.07.16
✎
12:44
|
Вот этот код отработал, получилось то что надо!
УдаляемыйЭлементОбъект = УдаляемыйЭлемент.ПолучитьОбъект(); УдаляемыйЭлементОбъект.Ответственный = Строка(ПараметрыСеанса.ТекущийПользователь) + Строка(НачалоДня(ТекущаяДата())); УдаляемыйЭлементОбъект.Записать(); |
|||
59
Dzenn
гуру
15.07.16
✎
13:00
|
Нет, ты уже не простой админ, ты посвящённый в таинства админ ;-)
|
|||
60
Dzenn
гуру
15.07.16
✎
13:00
|
*Ищущий просветления ;-)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |