|   |   | 
| 
 | Форма списка справочника | ☑ | ||
|---|---|---|---|---|
| 0
    
        Riko669 16.01.17✎ 13:59 | 
        День добрый! Подскажите пожалуйста, что не так? У меня есть справочник с формой списка, на этой форме есть поле надписи "Задолжность", мне нужно чтобы при выборе пациента (одним щелчком по пациенту) в этом поле надписи выводилась его задолжность. Подскажите кто-нибудь, что я не так делаю?
 &НаКлиенте Процедура СписокПриАктивизацииСтроки(Элемент) Если Элементы.Список.ТекущиеДанные.Задолжность = Неопределено Тогда ЗаполнитьРеквизитЗадолженностьПациента(); КонецЕсли; КонецПроцедуры &НаСервере Процедура ЗаполнитьРеквизитЗадолженностьПациента() Если Элементы.Список.ТекущиеДанные.Задолжность = Неопределено Тогда Попытка Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОплатыПриемовОстаткиИОбороты.СуммаКонечныйОстаток |ИЗ | РегистрНакопления.ОплатыПриемов.ОстаткиИОбороты( | , | , | , | , | Прием.Пациент = &Пациент"; Запрос.УстановитьПараметр("Пациент", ПациентВПриеме(Элементы.Список.ТекущиеДанные.Задолжность)); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Сумма = 0; Пока Выборка.Следующий() Цикл Сумма = Сумма + Выборка.СуммаКонечныйОстаток; КонецЦикла; Если Сумма = 0 Тогда Элементы.ЗадолженностьПациента.ЦветТекста = WebЦвета.Синий; Элементы.Список.ТекущиеДанные.Задолжность = "У пациента нет задолженности"; ИначеЕсли Сумма > 0 Тогда Элементы.ЗадолженностьПациента.ЦветТекста = WebЦвета.Красный; Элементы.Список.ТекущиеДанные.Задолжность = "Задолженность пациента составляет: "+Сумма+" "+Константы.ОсновнаяВалюта.Получить(); ИначеЕсли Сумма < 0 Тогда Элементы.ЗадолженностьПациента.ЦветТекста = WebЦвета.Синий; Элементы.Список.ТекущиеДанные.Задолжность = "Задолженность перед пациентом составляет: "+Сумма*-1+" "+Константы.ОсновнаяВалюта.Получить(); КонецЕсли; Исключение; КонецПопытки; КонецЕсли; КонецПроцедуры &НаСервере Функция ПациентВПриеме(Прием) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПриемСтоматолога.Пациент |ИЗ | Документ.ПриемСтоматолога КАК ПриемСтоматолога |ГДЕ | ПриемСтоматолога.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка", Элементы.Наименование); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Пациент = Выборка.Пациент; КонецЦикла; Возврат Пациент; КонецФункции | |||
| 1
    
        ВРедная 16.01.17✎ 14:06 | 
        Зачем попытка - исключение на ровном месте?
 В чем заключается проблема? | |||
| 2
    
        Riko669 16.01.17✎ 14:08 | 
        Попытку уже убрала только что) 
 проблема заключается в том, что не выводится задолжность в поле надписи. Прошлась отладчиком, ошибок никаких не выдает | |||
| 3
    
        Остап Сулейманович 16.01.17✎ 14:16 | 
        (0) Вангую.
 Вот это вот : РегистрНакопления.ОплатыПриемов есть регистр оборотов, а не остатков. | |||
| 4
    
        Riko669 16.01.17✎ 14:21 | 
        РегистрНакопления.ОплатыПриемов - остатки.
 Нужно чтобы был обороты, я правильно поняла? | |||
| 5
    
        shamannk 16.01.17✎ 14:23 | 
        (4) В консоли вначале глянте че он вам выдает.     | |||
| 6
    
        Остап Сулейманович 16.01.17✎ 14:26 | 
        (4) Нет. Если остатки - тогда все нормально. За одним исключением. Движения туда должны писаться как приход так и расход.     | |||
| 7
    
        Riko669 16.01.17✎ 14:28 | 
        (6) Да, пишется расход и приход     | |||
| 8
    
        Riko669 16.01.17✎ 14:30 | 
        (5) Вот сейчас я точно запаролась на счет консоли. Не совсем вас поняла в данный момент, т.к. с консолью я не сталкивалась ни разу. В 1с полтора месяца. Такие дела о_О     | |||
| 9
    
        shamannk 16.01.17✎ 14:37 | 
        (8) Есть такая обработка "Консоль запросов" которая позволяет выполнить запрос в режиме предприятия и сразу посмотреть результат.     | |||
| 10
    
        1dvd 16.01.17✎ 14:40 | 
        Мне кажется, что функция ПациентВПриеме не работает так как надо     | |||
| 11
    
        Riko669 16.01.17✎ 14:42 | 
        (9) Хорошо, поняла, попробую покопаться с этим. (10) Думаете дело в последней функции "ПациентВПриеме"?     | |||
| 12
    
        1dvd 16.01.17✎ 14:43 | 
        (11) У тебя в Элементы.Наименование что?     | |||
| 13
    
        Riko669 16.01.17✎ 14:47 | 
        (12) Эм..вот за это извиняюсь, чуть ранее не совсем корректно написала вот эту часть "Запрос.УстановитьПараметр("Ссылка", Элементы.Наименование);" в других местах поменяла, а здесь не увидела и пропустила. Так что в целом Элементы.Наименование - это ничего     | |||
| 14
    
        1dvd 16.01.17✎ 14:48 | 
        (13) тебе надо в запрос передать ссылку на документ ПриемСтоматолога     | |||
| 15
    
        Riko669 16.01.17✎ 14:49 | 
        (14) Хорошо, сделаю     | |||
| 16
    
        1dvd 16.01.17✎ 14:51 | 
        (15) Дико извиняюсь, конечно, но, разве это не форма списка справочника пациентов?     | |||
| 17
    
        Riko669 16.01.17✎ 14:52 | 
        (16) Да, все верно. Я в первом сообщении указала, что это справочник с формой списка     | |||
| 18
    
        1dvd 16.01.17✎ 14:58 | 
        (16) Зачем тогда искать пациента через док стоматолога, если он вот он?     | |||
| 19
    
        Riko669 16.01.17✎ 15:00 | 
        (18) Как тогда к нему обратиться? Все равно тот же запрос, только не к этому документу или как-то иначе?     | |||
| 20
    
        1dvd 16.01.17✎ 15:13 | 
        (19) блин, давно не работал с управляемыми формами, но там что-то типа Элементы.Список.ТекущиеДанные.Ссылка вернёт ссылку на элемент справочника     | |||
| 21
    
        Riko669 16.01.17✎ 15:20 | 
        (20) Почитаю по больше на эту тему, спасибо     | |||
| 22
    
        Riko669 17.01.17✎ 11:50 | 
        День добрый. Я все по этой же теме, в общем внесла некоторые изменения, прохожусь отладчиком и вылетает постоянно именно на строке "Если Элементы.Список.ТекущиеДанные.Задолжность = Неопределено Тогда" (Процедура СписокПриАктивизацииСтроки(Элемент)).
 Ошибку не выдает, но останавливает именно здесь. Открываю "Стек вызовов" пишет (Справочник.Пациенты.Форма.ФормаСписка.Форма.СписокПриАктивизацииСтроки(Элемент = ТаблицаФормы) 34 Тонкий клиент:Администратор (4), ghgh:1562) А при открытии "Локальные переменные" указывает "Переменная" (Элемент), "Значение" (ТаблицаФормы), Тип(ТаблицаФормы). | |||
| 23
    
        ВРедная 17.01.17✎ 13:03 | 
        Что значит "вылетает" и "останавливает"?     | |||
| 24
    
        famnam 17.01.17✎ 13:06 | 
        В процедура ПриАктивацииСтроки серверный вызов запрещен. Делайте через ПодключитьОбработчикОжидания     | |||
| 25
    
        Riko669 18.01.17✎ 11:03 | 
        &НаКлиенте
 Процедура СписокПриАктивизацииСтроки(Элемент) ТекПациент = Элементы.Список.ТекущаяСтрока; Если ТекПациент = Неопределено Тогда Возврат; КонецЕсли; СуммаЗадолженности = ПолучитьСуммуЗадолженностиПациента(ТекПациент); Если СуммаЗадолженности = 0 Тогда Элементы.Задолженность.ЦветТекстаЗаголовка = WebЦвета.Синий; Элементы.Задолженность.Заголовок = "У пациента нет задолженности"; ИначеЕсли СуммаЗадолженности > 0 Тогда Элементы.Задолженность.ЦветТекстаЗаголовка = WebЦвета.Красный; Элементы.Задолженность.Заголовок = "Задолженность пациента составляет: "+СуммаЗадолженности; ИначеЕсли СуммаЗадолженности < 0 Тогда Элементы.Задолженность.ЦветТекстаЗаголовка = WebЦвета.Синий; Элементы.Задолженность.Заголовок = "Задолженность перед пациентом составляет: "+СуммаЗадолженности*(-1); КонецЕсли; КонецПроцедуры &НаСервере Функция ПолучитьСуммуЗадолженностиПациента(СсылкаНаПациента) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОплатыПриемовОстатки.СуммаОстаток КАК СуммаОстаток |ИЗ | РегистрНакопления.ОплатыПриемов.Остатки( | , Прием.Пациент = &СсылкаНаПациента) КАК ОплатыПриемовОстатки"; Запрос.УстановитьПараметр("СсылкаНаПациента", СсылкаНаПациента); Результат = Запрос.Выполнить(); Если Результат.Пустой() Тогда Возврат 0; КонецЕсли; Выборка = Результат.Выбрать(); Выборка.Следующий(); Возврат Выборка.СуммаОстаток; КонецФункции Если добавляю "Константы.ОсновнаяВалюта.Получить();" Вылетает ошибка "Переменная не определена (Константы)" | |||
| 26
    
        ВРедная 18.01.17✎ 15:04 | 
        (25) на клиенте констант нет. Получи ее на сервере и храни в переменной формы. Потом на клиенте получай и показывай.     | |||
| 27
    
        Riko669 19.01.17✎ 09:45 | 
        (26) Хорошо, поняла. Спасибо     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |