Версия для печати темы (https://pro1c.org.ua/index.php?showtopic=30734)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Автомптическое оновление в ТЗ на форме.

Автор: volodya1122 08.07.16, 8:12

Сначала опишу ситуацию.
Есть документ (Товар в ремонте). В нем реквизит "СтанРемонта" Тип "Число" (1- Принят, 2- передан в СЦ, 3- Заказано запчасти, 4 - выполнен, 5- выдан клиенту). И так как в журнале все вперемешку я сделал Отчет. Поместил на форму ТаблицуЗначений. Установил флажки, для выбора документы с каким статусом показывать. Повесил на каждый флажок процедуру ПересчитатьТЗ(). Это все красиво работает.

А теперь о проблеме. Чтобы вообще исключить работу в журнале этого документа, а только в отчете, я добавил кнопку создания нового документа в этом отчете. Документ создается но в ТЗ он не появляется до тех пор пока не ПересчитатьТЗ(). Что логично.
Можно как то реализовать чтобы после создания нового документа в отчете запускался автоматически ПересчитатьТЗ()?

И еще вопрос. Можно ли выводить Данные в ТЗ в несколько строк как в ЖурналеДокумментов?

Автор: korol1091 08.07.16, 9:30

1) Что мешает в обработчике кнопки по созданию документа поставить ПересчитатьТЗ() в конце?
2) Да. Колонка ТЗ, свойство "положение"

Автор: volodya1122 08.07.16, 10:10


Цитата(korol1091 @ 08.07.16, 10:30) http://pro1c.org.ua/index.php?act=findpost&pid=114270
1) Что мешает в обработчике кнопки по созданию документа поставить ПересчитатьТЗ() в конце?


Не срабатывает

Автор: korol1091 08.07.16, 10:37

volodya1122 @ Сегодня, 11:10 *,

1) Вы перечитываете ТЗ, которую отображаете в ТП? Проверьте существование нового документа в ТЗ, а потом попробуйте ТП.СоздатьКолонки().

2) Тут я ошибся, Таблисчное Поле, конечно. ТЗ не имеет собственного визуального объекта, кроме как ВыбратьСтроку.
Все табличные штуки отображаются через ТабличноеПоле, вот у него в колонках и ищите.


Автор: volodya1122 08.07.16, 11:53

korol1091 @ Сегодня, 11:37 *,

"Моя твоя не понимать....."

Что вы имеете в виду под табличным полем? На форму вставил обычную таблицу значений где и отображаю список нужных мне докумментов.
Да, пересчитываю ТЗ которая отображается на форме.. И когда проверять существование нового документа?

Может можно что-то придумать с Форма.ОбработкаОжидания? Или будет грузить систему?


Оказалось все намного проще.
В документе на стандартную Кнопку "ОК" Повесил свою процедуру записи

         Записать();
             ОткрытьФорму("Отчет.Ремонты");
        Форма.Закрыть();


А в отчете написал следующий код
Процедура ПриПовторномОткрытии()
Обновить();  // пересчет ТЗ
КонецПроцедуры



а теперь возник другой вопрос.....
Все это работает отлично только для одного пользователя. Если отчет открыт в двух и более пользователей, то второй пользователь увидит новые документы только после того как у себя нажмет "Обновить" или также создаст новый документ.
Но думаю эту проблему уже простым путем не решить.....

Автор: Sharzem 08.07.16, 16:09

volodya1122 @ Сегодня, 12:53 http://pro1c.org.ua/index.php?act=findpost&pid=114281

Думаю что и у Вас никаких проблем не будет.

Автор: korol1091 08.07.16, 16:41

ОМГ, я думал это про восьмерку. Сорри.

Автор: Sharzem 08.07.16, 17:02

korol1091 @ Сегодня, 17:41 *,

Разницы в версиях при сегодняшних возможностях ОС нет.
Можно 8-ю смотреть как там сделано, если есть кто подскажет реализацию методов ))), только подходы реализации и задействование языков разные.

Не скоро еще умрет семерка, все зависит от тех кто ее обслуживает ))).
Мое мнение, 8-ка - объемная и тупая, хотя сами на 8-й Бух учет ведем (с чего и сделал такой вывод).
Связано это только с сопровождением (рук только одна пара), а так сидели бы и далее на 7-ке.

Автор: volodya1122 09.07.16, 14:18

всетаки сдедал через журнал. Повесил нужные отборы... Правда пришлось добавить в документ 8 шт новых реквизитов для осуществления разных отборов.

Автор: korol1091 11.07.16, 11:34

Sharzem @ 08.07.16, 18:02 *,
Ну да, разницы нет - попробуйте в клюшках выводить ТЗ на форму в две строки, как просил автор.

Автор: Sharzem 11.07.16, 12:53

Цитата(korol1091 @ 11.07.16, 12:34) http://pro1c.org.ua/index.php?act=findpost&pid=114385
ТЗ на форму в две строки


Почитал, поговорил, пообщался, обновил знания, в итоге вывод: в 7.7. вывести ТЗ в две строки которые можно редактировать нереально.
Но, возможно:
1. Визуальный обман пользователя с выводом данных как в многострочной части, но будет работать только для просмотра, как картинка.
2. Внесение изменений в платформу - дорого, дорого, очень дорого и противоречит авторским правам.

Возможно, пройдет немного времени и такое ВОЗМОЖНО станет реальным.

У кого-то есть другое мнение ???

Автор: sava1 11.07.16, 13:17

Цитата(Sharzem @ 11.07.16, 13:53) *
в 7.7. вывести ТЗ в две строки которые можно редактировать нереально.

Специально для таких случаев придумали 1срр + Табличное Поле

Автор: Sharzem 11.07.16, 14:50

Цитата(sava1 @ 11.07.16, 14:17) http://pro1c.org.ua/index.php?act=findpost&pid=114389

1. УстТаблицуЗначений / SetValueTable
Синтаксис: УстТаблицуЗначений(ТаблицаЗначений)
Параметры:
ТаблицаЗначений - тип: ТаблицаЗначений. Объект таблицы значений для отображения.
Описание: Устанавливает таблицу значений. Она будет использоваться, как источник данных для отображения в табличном поле.

2. Положение / Location
Доступ: чтение и запись.
Тип: Число
Описание: Определяет положение колонки относительно предыдущей колонки.

Так что, ув. korol1091, коллективный разум на 7.7. еще утрет нос 8-ке icon_beer17.gif

Автор: korol1091 14.07.16, 9:15

Да? А теперь попробуйте сделать так, чтобы 1срр-шное Табличное Поле меняло свой размер при разворачивании-сворачивании формы. Получится? Я уже не говорю про кнопку-подложку, пусть будет, хрен с ней.

Но вообще, конечно, прямые запросы + Индексированная таблица - это гениальные штуки. Восьмерочная ТЗ выглядит просто высером имбецилов по сравнению с Индексированной таблицей.

Автор: Sharzem 15.07.16, 13:26

korol1091 @ Вчера, 10:15 *,

Процедура ПриИзмененииРазмераОкна(ТипСобытия,Ширина,Высота)
    Перем ШиринаАтрКн,ЛевоАтр,ЛевоАтр1,ШиринаАтр,ВысотаАтр,ВерхАтр,ВерхАтр1;
    Атр1 = СоздатьОбъект("АтрибутФормы");
    Атр1.УстановитьАтрибут(Форма,"ТаблицаЗнач");
    Атр1.ПолучитьКоординаты(ЛевоАтр1,ВерхАтр,ШиринаАтр,ВысотаАтр);
    
    Атр2 = СоздатьОбъект("АтрибутФормы");
    Атр2.УстановитьАтрибут(Форма,"кнЗакрыть");
    Атр2.ПолучитьКоординаты(,,ШиринаАтрКн);
    Атр2.УстановитьКоординаты(ЛевоАтр1+ШиринаАтр-ШиринаАтрКн);
    Атр2.ПолучитьКоординаты(,ВерхАтр1,);
    
        
    Атр2.УстановитьАтрибут(Форма,"ТаблицаДанных");
    Атр2.ПолучитьКоординаты(ЛевоАтр,ВерхАтр,,);
    лпВысота = ВерхАтр1 - ВерхАтр;
    Атр2.УстановитьКоординаты(,,ЛевоАтр1+ШиринаАтр-ЛевоАтр,ВысотаАтр);
КонецПроцедуры


Подойдет ?

Я не работал с Табличным полем никогда, но поскольку это реквизит формы, то и управлять им проблем не возникнет.

Автор: korol1091 18.07.16, 9:25

Это идея, но когда на форме 20 элементов, становится грустно.

Автор: sava1 18.07.16, 9:39

korol1091 @ Сегодня, 10:25 *,
Класс "Привязки" - и никиких "грустно".
А вообще-то, чтобы рассуждать о предмете, надо его знать.
"Я так думаю..."

Автор: Cthulhu 15.08.16, 14:59

Цитата(volodya1122 @ 08.07.16, 11:53) http://pro1c.org.ua/index.php?act=findpost&pid=114281
можно что-то придумать с Форма.ОбработкаОжидания


Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua