Имя: Пароль:
1C
1С v8
1 8.3 УФ, количество строк в ФормаСписка документа
,
0 Geroy
 
10.02.15
13:32
После отбора нужно подсчитать сколько строк осталось
Если 0 тогда создать новый документ и передать параметры отбора в документ
1 mikecool
 
10.02.15
13:32
я не против, считай
2 mikecool
 
10.02.15
13:34
берешь запрос ДС, накладываешь в него отбор, считаешь Количество(*) - если 0, значит вводишь документ
3 Geroy
 
10.02.15
13:37
Сделать отбор
Сразу после отбора делать запрос?
С такимиже параметрами как и отбор

Бред какой-то
А по проще ничего нет например

ЭтаФорма.Список.Количество() ???
4 mikecool
 
10.02.15
13:38
(3) "Бред какой-то " - это сугубо ваше личное мнение, которое не сходится с мнением разрабов 1С
5 Geroy
 
10.02.15
13:40
(4) а как просто перебрать строки ФормыСписка?
6 _KaA
 
10.02.15
13:40
(4)
Обещали дать работу с динамическими списками (ДС) в следующих версиях.

(5)
Пока не как. Только текущая.

(0)
При вводе нового документа из ДС значения отборов автоматически передаются в форму документа.
7 _KaA
 
10.02.15
13:42
А вообще проблема в том, что ДС не несет инструментарий анализа - это просто список. Отображение. Не более того.

А потом, когда-то, дадут и новые возможности :)))
8 ShoGUN
 
10.02.15
13:42
(5) Можно выдрать запрос и отборы текущие из ДС, через его свойства. Проще пока ничего нет, увы, сам споткнулся на этом. Это ты ещё с поиском не сталкивался, он на отборы не влияет, это РАЗНЫЕ вещи %)
9 ShoGUN
 
10.02.15
13:43
+(8) С поиском вообще толстая и глубокая...
10 Geroy
 
10.02.15
13:43
(8) придется Запрос делать
11 Geroy
 
10.02.15
13:44
(9) а есть что-то типо получить первую строку, а потом в цикле следующую?
12 Geroy
 
10.02.15
13:45
хотя один хрен тоже самое что и запрос
13 ShoGUN
 
10.02.15
13:45
(11) ОТКУДА? :) Тупо нельзя никак получить из динамического списка текущие отображаемые данные. Не сделали. Увы.
14 Михаил Козлов
 
10.02.15
13:46
В обычных формах можно было через построитель отчета, у которого источником данных служил ДокументСписок.
В УФ, к сожалению, профан.
15 _KaA
 
10.02.15
13:54
Из собственного опыта скажу, что задач для которых реально надо работать с ДС очень мало! А задач, которые не обойти еще меньше.

Зачем вам обходить строки ДС? Это же не форма выбора - это форма списка, задача которой быстро показать данные (с нужной сортировкой, отбором). При этом ключевым является "быстро показать"! Потом уже обновить, перечитать...

Отсюда и скакать надо.

Если вам не сложно, расскажите какую задачу решаете (подробно)...
16 _KaA
 
10.02.15
13:54
+(15) Не путать использовать и работать. Работать = обходить содержимое и все такое...
17 ShoGUN
 
10.02.15
13:59
(15) Посчитать итог по реквизиту в списке и отобразить его на форме.
18 ShoGUN
 
10.02.15
14:01
+(17) Как пример.
19 _KaA
 
10.02.15
14:05
(17) Пожалуйста, подробнее:
- Для чего реквизит будет использоваться (кем и как)?
- Какой реквизит?
- Почему это не отчет?
- Как на него будут влиять отборы?

ну и т.д.

PS Я не ставлю цель доказать, что работа с ДС не нужна вовсе. Я хотел бы подсказать как обойти ситуацию...
20 ShoGUN
 
10.02.15
14:10
(19) Конфа для учёта денег в рознице(не фронт кассира, а просто учёт выдаваемых/сдаваемых денег в магазине).
Нужно по списку ордеров считать общую сумму, с учётом отборов и периода, и общее количество ордеров.
Не отчёт, потому что оперативность нужна.
21 ShoGUN
 
10.02.15
14:21
Как обойти - я и так знаю. Просто очень уж бестолково сделано.
22 _KaA
 
10.02.15
14:23
(20) Ну тогда я бы предложил (и меня могут послать) сделать Автоматизированное Рабочее Место, в котором была бы ПФ для сдачи/приемки денег. И если не ПФ, то как минимум сервисная возможность, которая подводила бы итог работы (закрывала смену).

Из собственного опыта: у меня не разу оперативность не побеждала в вопросах сдачи/приемки денег. Люди принимающие "бабло" готовы сколь угодно жертвовать временем, только бы все сошлось :)
23 ShoGUN
 
10.02.15
14:26
(22) Я ж говорю - я знаю, как обойти. Проблема в том, что в действительности этот огород не нужен нафиг. Проблема обращения данным списка - яйца выеденного не стоит.
24 _KaA
 
10.02.15
14:28
(23)

Вот мне тоже кажется, что в (0) "что-то не ладное"...
25 ShoGUN
 
10.02.15
14:35
(24) Нет :) Нормально там всё. Я имел в виду, что ничего сложного в том, чтобы передать на клиента как минимум количество строк данных и сумму по числовым реквизитам с учётом отборов - не должно быть. Просто это сочли неприоритетным и не сделали.
26 Geroy
 
10.02.15
14:39
(23) (24)  просто после отбора , если не будет ни одной строки
Нужно создать Новый Документ
передать туда  значение отбора
и открыть его
27 ShoGUN
 
10.02.15
14:41
(26) А отборы разные что ли каждый раз? Если да - то какая-то логика замороченная, которую надо бы полностью озвучить. А если один и тот же отбор - то запросом проще.
28 _KaA
 
10.02.15
14:42
(26) Почему его нужно создать? Как это будет использоваться?

Открывается список, есть 10 документов...
Потом а посмотрю-ка я документы за вчера и, бац, новый документ. Погодите, я хотел документы за вчера, а ты мне показал форму нового документа...
29 Geroy
 
10.02.15
14:53
Документ ЗаказПокупателя

Реквизит Отбора ЭлектронныйЧек

Так вот если в запросе
Документ.ЭлектронныйЧек=ОтборЭлектронныйЧек
И Документ.СтатусЗаказа=ОтборСтатусЗаказа

Ничего ненашло нужно создать документ
Передать в него значение Документ.ЭлектронныйЧек=ОтборЭлектронныйЧек

И Открыть этот документ
30 ShoGUN
 
10.02.15
14:56
(29) Не вижу проблемы сделать это без привлечения динамического списка.
31 Geroy
 
10.02.15
14:59
(30) да я уже через запрос сделал
Если в результате запроса ничего ненайдено
Создал новый документ передал данные
Записал документ и потом по Ссылке открыл его
32 Geroy
 
10.02.15
15:00
Гребанная УФ
Как Открыть документ? есть ссылка на документ

ОткрытьЗначение(СсылкаНаДокумент)  - Не работает
33 _KaA
 
10.02.15
15:02
(31)

А может лучше сделать "сервисную возможность" <Проверить электронные чеки>.

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

(32)
ОткрытьФорму("ИмяФормы", Новый Структура("Ключ", <ВашаСсылка>))
34 Geroy
 
10.02.15
15:03
(33) надо именно так как я описал выше
ПриОткрытии СпискаДокумента ЗаказПокупателя
Сразу всплывающая форма
Которая просит ввести ЭлектронныйЧек
35 _KaA
 
10.02.15
15:10
(34)

Хорошо - делайте. Но с точки зрения "комфорта пользователя" - это совсем правильно.

Пользователь ожидает увидеть список документов, а вы его заставляете вводить новый документ.

PS
Разговор в магазине:
- Барышня, а у вас хлеб есть?
- Вот тебе мука, яйцо куриное, соль, дрожжи - пеки, гад :)
36 Geroy
 
10.02.15
15:13
Это Всё будет выполнятся только для определенной группы
Физических Лиц
37 Geroy
 
10.02.15
15:16
(35) Странно как-то

Создаю документ и заполняю несколько реквизитов и сохраняю

Затем
ОткрытьФорму("Документ.ЗаказПокупателя.Форма.ФормаДокумента",Новый Структура("НовДок",НашаСсылка));

Он мне открывает документ но в нём реквизиты которым я уже присвоил значение почему-то пустые
38 Geroy
 
10.02.15
15:19
Создаёт одно а открывает другое....
39 banco
 
10.02.15
15:51
(37) а че за параметр "НовДок"? может все таки "Ключ"?
40 Geroy
 
10.02.15
16:00
(39)
Если ЗначениеЗаполнено(НашаСсылка)=Истина тогда
            
    Д = Новый Структура("Ключ", НашаСсылка);
    Форма = ПолучитьФорму("Документ.ЗаказПокупателя.Форма.ФормаДокумента", Д);
    Форма.Открыть();

КонецЕсли;


Вот так сделал