|   |   | 
| 
 | Подскажите как программно изменить значение в поле ввода? | ☑ | ||
|---|---|---|---|---|
| 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 | 
        *Ищущий просветления ;-)     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |