|
v8: как перебрать документы в табличной части | ☑ | ||
---|---|---|---|---|
0
Tilirxs
18.06.14
✎
07:14
|
Я создал документ и поместил на форме документа кнопку по которой выбираются все документы которые не оплачены. Мне нужно что бы при проведении документа во всех документах в табличных частях перебирался и проставлялся что оплачено. Как можно перебрать документы из табличной части формы. Подскажите пожалуйста как перебрать документы в табличной части? Я новичок.
|
|||
1
Wobland
18.06.14
✎
07:19
|
проводится один документ, а меняется целая пачка. нехорошо
|
|||
2
Godofsin
18.06.14
✎
07:23
|
для каждого СтрокаТЧ из НазваниеТвоейТЧ цикл
СТрокаТЧ.Документ.ТвойРеквизит = ...; КонецЦикла; |
|||
3
kosts
18.06.14
✎
07:38
|
(0)
Лучше примерно так в обработке проведения:
|
|||
4
Tilirxs
18.06.14
✎
09:09
|
Это проста задача на программирование мне дают (Я на испытательном сроке). Мне нужно сделать запись в регистр сведений.
|
|||
5
Wobland
18.06.14
✎
09:11
|
(4) >регистр сведений
вот это сейчас откуда выпрыгнуло? |
|||
6
Tilirxs
18.06.14
✎
09:21
|
Извините опаздывал на работу опаздывал быстро напечатал.
|
|||
7
Godofsin
18.06.14
✎
09:23
|
вот это поворот!
|
|||
8
Wobland
18.06.14
✎
09:25
|
думаю, приз за телепатический дар получает kosts
|
|||
9
Tilirxs
18.06.14
✎
09:26
|
как можно будет программно перебрать документы. получить и записать в регистр сведений уже с статусом оплаты "Оплачено". Статус оплаты это перечисления. Как можно будет это реализовать?
|
|||
10
Tilirxs
18.06.14
✎
09:27
|
Извините может я не правильно говорю просто в программирование только новичок.
|
|||
11
Tilirxs
18.06.14
✎
09:32
|
Мне нужно просто перепровести документы из табличной части только с другим статусом.Изменения коснуться только регистра сведений вместо "НеОплачено" на "Оплачено".
|
|||
12
devochka_1c
18.06.14
✎
09:37
|
(11) Вам в (3) дали зацепку. конечно можно.
|
|||
13
Рэйв
18.06.14
✎
09:38
|
(9)Тебе не надо перебирать ничего. Ссылку при проведении ты уже и так имеешь.Она во всех таб частях где он есть - одинаковая.
Просто сделай запись в регистр и все |
|||
14
Рэйв
18.06.14
✎
09:39
|
если я конечно правильно понял что "при проведении документа"
|
|||
15
Tilirxs
18.06.14
✎
09:50
|
(13) Мне нужно при проведении документа. в табличной части у документов изменился статус на "Оплачено".
|
|||
16
Tilirxs
18.06.14
✎
09:51
|
у уже проведенных документов со статусом "Не оплачено" на статус "оплачено". Изменение только в регистре касаются.
|
|||
17
Tilirxs
18.06.14
✎
09:53
|
извините. у уже проведенных документов со статусом "Не оплачено" на статус "оплачено". Изменение только в регистре сведений касаются.
|
|||
18
Godofsin
18.06.14
✎
09:54
|
||||
19
Рэйв
18.06.14
✎
09:55
|
(17) объясни мне свяь между
>>в табличной части у документов изменился статус на "Оплачено"." и >>Изменение только в регистре сведений касаются. они какбэ противоречат друг другу |
|||
20
YF
18.06.14
✎
09:58
|
Вообще ТС, мне кажется, не понимает что ему нужно в связи с непониманием терминологии 1С
|
|||
21
Infsams654
18.06.14
✎
10:00
|
(19)+ зачем держать в ТЧ документа Оплачено? И так ясно, документ проведен или нет. Если надо на форме, то показать в соответствующей колонке состояние проведения
|
|||
22
Godofsin
18.06.14
✎
10:00
|
ТС, выкладывай текст задания, как его тебе написали дословно
|
|||
23
Рэйв
18.06.14
✎
10:01
|
(21)Мы это понимаем, а вот ТС, боюсь, не очень:-)
|
|||
24
Tilirxs
18.06.14
✎
10:10
|
(22) Задание. В документ реализации поставить статус (Перечисление) с видом "Оплачено" и "НеОплачено". 2 Создать документ и разместить в нем кнопку по нажатию которой производиться поиск документов со статусом "НеОплачено" и вывести в табличную часть. 3 При проведении у всех документов содержащие в табличной части документа в статусе что бы статус изменился с "НеОплачено" на "Оплачено".
|
|||
25
Tilirxs
18.06.14
✎
10:12
|
Я поиск сделал запросом. и вывел в табличную часть. теперь осталось разобраться с изменением статуса "НеОплачено" на "Оплачено"
|
|||
26
Рэйв
18.06.14
✎
10:16
|
(24)Нда..:-) Задание тоже суперское оказывается!:-)
|
|||
27
Любопытная
18.06.14
✎
10:16
|
" 3 При проведении у всех документов содержащие в табличной части документа в статусе что бы статус изменился с "НеОплачено" на "Оплачено"."
Какой ужасно косноязычный человек давал это задание... При проведении документа у документов из ТЧ должен поменяться признак оплаты? |
|||
28
Tilirxs
18.06.14
✎
10:19
|
(3) Да
|
|||
29
Tilirxs
18.06.14
✎
10:24
|
(27) Да нужно что бы у всех документов из ТЧ изменился статус оплаты на "Оплачено". В документе Статусоплаты это регистр сведений
|
|||
30
Рэйв
18.06.14
✎
10:25
|
(29)>>В документе Статусоплаты это регистр сведений
Опять за рыбу деньги!:-) что значит "В документе Статусоплаты это регистр сведений"? |
|||
31
РенеДекарт
18.06.14
✎
10:27
|
(29)>>В документе Статусоплаты это регистр сведений
как Статус может быть РС?! РС - это таблица. И все. Каким образом она у вас связана с документом? Связана ли вообще? |
|||
32
Tilirxs
18.06.14
✎
10:29
|
(30) в Документе я разместил реквизит перечисления Статус оплаты. При проведении документа статус оплаты записывается в регистр сведений. Извините если что то не так говорю.
|
|||
33
Tilirxs
18.06.14
✎
10:34
|
(31) Я типа дорабатываю типовую УТ 11. В документ реализация товаров и услуг. поставил реквизит с типом перечисления и разместил этот реквизит на форму. И записываю значения реквизита в Регистр Сведений (Статус оплаты)
|
|||
34
hhhh
18.06.14
✎
10:34
|
(31) походу это два разных документа. Есть супермега документ, в котором ТЧ с двумя колонками: документ и статус.
|
|||
35
Tilirxs
18.06.14
✎
10:39
|
добавил в документ реквизит и все. И поиск только по этому реквизиту среди документов я сделал запросом все отлично работает. А вот с изменением этого реквизита проблема у меня. Может я не так делаю?
|
|||
36
Рэйв
18.06.14
✎
10:42
|
(35)Может ты
.ПолучитьОбъект() не делаешь?:-) |
|||
37
Tilirxs
18.06.14
✎
10:53
|
(36) нет не пробовал. Подскажите с примером пожалуйста.
|
|||
38
Василёна
18.06.14
✎
11:09
|
(37) Вас нельзя и близко подпускать к 1С
|
|||
39
Tilirxs
18.06.14
✎
11:15
|
(36) Спасибо!!!Разобрался. Блин самому стыдно что спрашивал о таких вещах.
|
|||
40
Tilirxs
18.06.14
✎
11:16
|
(38) Буду исправляться. )))
|
|||
41
catena
18.06.14
✎
11:16
|
А зачем регистр, если патчим документы?
Если перезаписывать регистр - зачем собираем по реквизиту в документе? Чтобы 20 раз закрывались одни и те же документы? Проще всего (и правильнее) не трогать уже проведенные документы, а текущим документом в том же регистре проставлять по ним "Оплачено". |
|||
42
Kalambur
18.06.14
✎
11:24
|
(38) сама то спец наверно?
|
|||
43
Godofsin
18.06.14
✎
11:27
|
(42) Симпатичная деваха из Иваново )))) ей простительно ))))
|
|||
44
Василёна
18.06.14
✎
11:28
|
(42) нет, только проф)
|
|||
45
РенеДекарт
18.06.14
✎
11:31
|
(35) в 1С есть "Ссылка". Есть "Объект". Есть реквизиты. Запись в регистр (любой) - называется "проведением по регистру", и к начинке самого документа прямого отношения не имеет.
Изменение реквизитов документа - отдельно, запись в регистр - отдельно. Они могут быть вместе, могут быть отдельно, по частям и по-всякому. |
|||
46
РенеДекарт
18.06.14
✎
11:33
|
(0) тебе нужно определиться с опреациями:
- что хочу сделать с объектами - как хочу это сделать - как это сделать в реальности 1С |
|||
47
РенеДекарт
18.06.14
✎
11:34
|
(43) на фото маленькая еще ))
|
|||
48
Segate
18.06.14
✎
11:37
|
(0) сделай Оплачено - реквизитом формы, и вычисляй его при открытии, тогда не надо будет ничего менять, инфа 146%
|
|||
49
Василёна
18.06.14
✎
11:39
|
(48) ему не надо открывать эти документы
|
|||
50
Dionis Sergeevich
18.06.14
✎
11:41
|
(0) Не боишься что твой шеф сейчас читает эту тему? =) Исп срок думаешь пройдешь?
|
|||
51
Segate
18.06.14
✎
11:42
|
(49)вы не поняли смысл того, что я написал.
|
|||
52
Василёна
18.06.14
✎
11:43
|
(51) зато я поняла, что ему надо.
|
|||
53
Teresa
18.06.14
✎
11:43
|
По идее нужно при обходе ТЧ в цикле так, как уже указано в(3) осуществлять поиск регистратора в регистре и меняеть значение "Оплачено" в найденной записи регистра сведений.
|
|||
54
Василёна
18.06.14
✎
11:46
|
(53) именно
|
|||
55
Teresa
18.06.14
✎
11:51
|
ВыбратьПоРегистратору(<Регистратор>)
Параметры: <Регистратор> (обязательный) Тип: ДокументСсылка. Ссылка на документ, являющийся регистратором для записей регистра. Возвращаемое значение: Тип: РегистрСведенийВыборка. Описание: Формирует выборку по регистратору записей регистра сведений. Применяется для регистров сведений, для которых в конфигураторе установлен режим записи "Подчинение регистратору". |
|||
56
Segate
18.06.14
✎
11:52
|
(52) Я тоже понял, и предлагаю самый лучший вариант.
Ну а вы все упоролись. Какую запись менять? Зачем? а если потом перепроведут реализацию? она опять станет не оплаченой? ) Надо просто использовать РН где учитываются деньги, и делать в нем движение документом который создает автор. а оплату вычислять при открытии формы реализации. тогда не будет возникать конфликто |
|||
57
Segate
18.06.14
✎
11:58
|
т.е. реализация должна делать движения по РН.
Например по взаиморассчетом с контрагентами. И там у него образуется минус при проведении реализации. При проведении документа который создает автор, не только надо ставить галочку "Оплачено", но и что то делать с этими движениями. а то что вы предлагаете - это, простите, полный бред. В итоге потом будут спрашивать, почему у нас все заказы оплачены а по взаиморассчетам сплошные минуса. |
|||
58
Рэйв
18.06.14
✎
11:59
|
(56)Имхается мне что пример в сабже - просто пример и никакого отношения к жизни не имеет. Так что скорее стоит задлача сделать "так как сказано" для проверки знаний.
Но конечно уровень косноязычия что у постановщика задачи, что у ТС - зашкаливает:-) |
|||
59
Godofsin
18.06.14
✎
12:00
|
(57) +1
|
|||
60
Teresa
18.06.14
✎
12:03
|
(58)+1 Весь вопрос в том, как поставлена задача. Судя по настроению автора, он хочет менять регистр. Поэтому именно этот вариант и предлагают одни. А по уму конечно нужно действовать по принципу (57). Какова цель, таковы и средства.
|
|||
61
Segate
18.06.14
✎
12:07
|
(0) в общем так, делай документ, который делает движения по регистрам типа "взаиморассчеты с контрагентами" и тп движения закрывающие все долги по конкретным документам, с пометкой - типа "Зашибись, теперь все оплачено, так требует нащяльнике"
добавь реквизит формы "Оплачено" и при открытии запросом дергай статус документа из регистра взаиморассчетов. Типа если долг = 0 тогда "оплачено" иначе "Писечка вам шершавенькая, а не оплачено." ну и все. только менять регистр взаиморассчетов документом не связанным с поступлением ДС - тоже бред ) |
|||
62
Василёна
18.06.14
✎
12:08
|
Если уж так пошло, то лучше делать на основе (3). При проведении обходить ТЧ, получать объект роикаждой ссылке, менять реквизит и проводить документ
|
|||
63
Segate
18.06.14
✎
12:08
|
(62) за такие советы, я бы у вас и профа отобрал бы.=))
|
|||
64
catena
18.06.14
✎
12:16
|
(62)Клево, создам я документ этот, заполню его, переведу все накладные в статус "Оплачено", а документ потом очищу. Никто концов-то и не найдет...
|
|||
65
Василёна
18.06.14
✎
12:16
|
(63) Попробуйте) только руки коротки) и, да, в задании ни слова о регистрах
|
|||
66
Василёна
18.06.14
✎
12:19
|
Задание, все-таки, не имеет никакого отношения к практическому применению. Это тупо проверка понимания автором принципов работы с объектами конфигурации
|
|||
67
Segate
18.06.14
✎
12:21
|
(65) задание обычно дает пользователь, он может вообще не знать, что есть регистры. Он может сказать: Хочу, чтоб было оплачено. И уже ты, как программист, должна сказать, что либо так делать нельзя, либо продумать, как сделать то что хочет пользователь, без нарушения логики программы.
|
|||
68
Segate
18.06.14
✎
12:22
|
я почти уверен, что у пользователя кривая база, и какие-то оплаты от контрагента не подтягиваются к реализациям, и задача документа актуализировать эти самые оплаты. а не тупо проставить признак.
|
|||
69
Василёна
18.06.14
✎
12:24
|
(67) если у автора не возникает вопроса "а действительно ли документ оплачен?", то ему ещё учиться и учиться.
|
|||
70
Godofsin
18.06.14
✎
12:24
|
))))
|
|||
71
Василёна
18.06.14
✎
12:25
|
(0) автор, где пропал? Тебя уже уволили?
|
|||
72
Teresa
18.06.14
✎
13:18
|
(68) В таком случае логичнее вообще поменять подход и работать над усовершенствованием процедуры проведения реализации.
|
|||
73
Segate
18.06.14
✎
13:36
|
(72)в таком случае надо проканифолить мозги пользователям чтоб вели учет как пологается, а не как попало
|
|||
74
Любопытная
18.06.14
✎
13:38
|
Вы все еще не сделали что ли?
|
|||
75
Teresa
18.06.14
✎
13:44
|
(72) не все пользователи одинаково полезны)
|
|||
76
Teresa
18.06.14
✎
13:45
|
(72)->(73)
|
|||
77
hhhh
18.06.14
✎
13:48
|
(73) всё-таки статус документа - это регистр сведений. Каждой раз динамически лазить по регистрам накопления его вычислять? Это мазохизм.
|
|||
78
Fish
18.06.14
✎
14:06
|
(77) Зачем что-то вычислять? Смотришь остаток долга по РН, и всех делов.
|
|||
79
hhhh
18.06.14
✎
14:08
|
(78) ну например журнал документов, в нем колонка статус. Динамически ее будешь каждый раз обновлять? Когда пользователь листает журнал?
|
|||
80
Segate
18.06.14
✎
14:09
|
(79) Вот ты не поверишь, но в ут 11 так и сделан статус документа )
|
|||
81
Teresa
18.06.14
✎
14:12
|
(80) и прям не тормозит ничего при таком раскладе? а если пользователи толпой начнут его листать?
|
|||
82
Segate
18.06.14
✎
14:23
|
(81) нуу... как по мне, дык тормозит )) но в принципе, если не открывать журналы с начала времен, то нормас
|
|||
83
Teresa
18.06.14
✎
14:25
|
(82) какой ужас
|
|||
84
Segate
18.06.14
✎
14:34
|
(83)
Вот как считается состояние для заказа в ут 11. В модуле менеджера для каждого заказа. // Осуществляет вычисление текущего состояния заказа клиента // // Параметры: // ЗаказКлиента - ДокументСсылка.ЗаказКлиента - Документ, состояние которого необходимо вычислить // Договор - СправочникСсылка.ДоговорыКонтрагентов - Договор с клиентом // СостояниеРасчетов - УправляемаяФорма - Форма, в реквизиты которой будет помещено рассчитанное состояние // Процедура РассчитатьСостояние(Знач ЗаказКлиента, Знач Договор, СостояниеРасчетов) Экспорт ЗаполнитьЗначенияСвойств(СостояниеРасчетов, СтруктураСостоянияРасчетов()); Если ЗначениеЗаполнено(ЗаказКлиента) И ПравоДоступа("Чтение", Метаданные.РегистрыНакопления.РасчетыСКлиентами) И ПравоДоступа("Чтение", Метаданные.РегистрыНакопления.ЗаказыКлиентов) И ПравоДоступа("Чтение", Метаданные.Документы.ЗаказКлиента) Тогда УстановитьПривилегированныйРежим(Истина); Запрос = Новый Запрос(" |ВЫБРАТЬ |ВЫБОР |// НЕ ПРОВЕДЕН ///////////////////////////////////////////////////////////// | КОГДА | НЕ ДокументЗаказКлиента.Проведен | ТОГДА | ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.ПустаяСсылка) |// ОЖИДАЕТСЯ СОГЛАСОВАНИЕ ////////////////////////////////////////////////// | КОГДА | ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.НеСогласован) | ТОГДА | ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.ОжидаетсяСогласование) |// ОЖИДАЕТСЯ АВАНС ДО ОБЕСПЕЧЕНИЯ ////////////////////////////////////////// | КОГДА | ДокументЗаказКлиента.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным) И | (ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Согласован) ИЛИ &НеИспользоватьСтатусыЗаказовКлиентов) И | ДокументЗаказКлиента.СуммаАвансаДоОбеспечения > 0 И | ЕСТЬNULL(РасчетыСКлиентамиОстатки.КОплатеРасход, 0) < ДокументЗаказКлиента.СуммаАвансаДоОбеспечения | ТОГДА | ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.ОжидаетсяАвансДоОбеспечения) |// ГОТОВ К ОБЕСПЕЧЕНИЮ ///////////////////////////////////////////////////// | КОГДА | ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Согласован) И | ДокументЗаказКлиента.СуммаДокумента + ДокументЗаказКлиента.СуммаВозвратнойТары > 0 И | (ЕСТЬNULL(РасчетыСКлиентамиОстатки.КОплатеРасход, 0) >= ДокументЗаказКлиента.СуммаАвансаДоОбеспечения ИЛИ | ДокументЗаказКлиента.ПорядокРасчетов <> ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным)) | ТОГДА | ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.ГотовКОбеспечению) |// ОЖИДАЕТСЯ ПРЕДОПЛАТА ДО ОТГРУЗКИ //////////////////////////////////////// | КОГДА | ДокументЗаказКлиента.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным) И | (ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Согласован) ИЛИ &НеИспользоватьСтатусыЗаказовКлиентов ИЛИ | ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.КОбеспечению)) И | ДокументЗаказКлиента.СуммаПредоплатыДоОтгрузки > 0 И | ЕСТЬNULL(РасчетыСКлиентамиОстатки.КОплатеРасход, 0) < ДокументЗаказКлиента.СуммаПредоплатыДоОтгрузки + ДокументЗаказКлиента.СуммаАвансаДоОбеспечения | ТОГДА | ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.ОжидаетсяПредоплатаДоОтгрузки) |// ГОТОВ К ОТГРУЗКЕ ////////////////////////////////////////////////////// | КОГДА | (ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Согласован) | ИЛИ ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.КОбеспечению)) И | ДокументЗаказКлиента.СуммаДокумента + ДокументЗаказКлиента.СуммаВозвратнойТары > 0 И | (ЕСТЬNULL(РасчетыСКлиентамиОстатки.КОплатеРасход, 0) >= ДокументЗаказКлиента.СуммаПредоплатыДоОтгрузки + ДокументЗаказКлиента.СуммаАвансаДоОбеспечения ИЛИ | ДокументЗаказКлиента.ПорядокРасчетов <> ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным)) | И ЕСТЬNULL(ЗаказыКлиентовОстатки.СуммаОстаток, 0) <> 0 | ТОГДА | ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.ГотовКОтгрузке) |// ОЖИДАЕТСЯ ОТГРУЗКА ////////////////////////////////////////////////////// | КОГДА | (ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.КОтгрузке) ИЛИ &НеИспользоватьСтатусыЗаказовКлиентов) И | ДокументЗаказКлиента.СуммаДокумента + ДокументЗаказКлиента.СуммаВозвратнойТары > 0 И | (ЕСТЬNULL(РасчетыСКлиентамиОстатки.КОплатеРасход, 0) >= ДокументЗаказКлиента.СуммаПредоплатыДоОтгрузки + ДокументЗаказКлиента.СуммаАвансаДоОбеспечения ИЛИ | ДокументЗаказКлиента.ПорядокРасчетов <> ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным)) | И ЕСТЬNULL(ЗаказыКлиентовОстатки.КОформлениюОстаток, 0) <> 0 | ТОГДА | ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.ОжидаетсяОтгрузка) |// ОЖИДАЕТСЯ ОПЛАТА ПОСЛЕ ОТГРУЗКИ ///////////////////////////////////////// | КОГДА | ДокументЗаказКлиента.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным) И | (ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.КОтгрузке) ИЛИ &НеИспользоватьСтатусыЗаказовКлиентов) И | ДокументЗаказКлиента.СуммаДокумента - ДокументЗаказКлиента.СуммаАвансаДоОбеспечения - ДокументЗаказКлиента.СуммаПредоплатыДоОтгрузки > 0 И | ЕСТЬNULL(ЗаказыКлиентовОстатки.КОформлениюОстаток, 0) = 0 И | ЕСТЬNULL(РасчетыСКлиентамиОстатки.КОплатеКонечныйОстаток, 0) > 0 | ТОГДА | ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.ОжидаетсяОплатаПослеОтгрузки) |// ГОТОВ К ЗАКРЫТИЮ //////////////////////////////////////////////////////// | КОГДА | ДокументЗаказКлиента.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Закрыт) | ТОГДА | ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.ГотовКЗакрытию) |// ЗАКРЫТ ////////////////////////////////////////////////////////////////// | КОГДА | (ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Закрыт) И НЕ &НеИспользоватьСтатусыЗаказовКлиентов) ИЛИ (&НеИспользоватьСтатусыЗаказовКлиентов) | ТОГДА | ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.Закрыт) |КОНЕЦ КАК Состояние, |ВЫБОР |// НЕ ПРОВЕДЕН ///////////////////////////////////////////////////////////// | КОГДА | НЕ ДокументЗаказКлиента.Проведен | ТОГДА | ЛОЖЬ |// ЗАКРЫТ ////////////////////////////////////////////////////////////////// | КОГДА | ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Закрыт) И НЕ &НеИспользоватьСтатусыЗаказовКлиентов | ТОГДА | ЛОЖЬ |// ПРОСРОЧЕНО СОГЛАСОВАНИЕ ///////////////////////////////////////////////// | КОГДА | ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.НеСогласован) | И ДокументЗаказКлиента.ДатаСогласования <> ДАТАВРЕМЯ(1,1,1) | И ДокументЗаказКлиента.ДатаСогласования < &ТекущаяДата | ТОГДА | ИСТИНА |// ПРОСРОЧЕН АВАНС ДО ОБЕСПЕЧЕНИЯ ////////////////////////////////////////// | КОГДА | ДокументЗаказКлиента.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным) И | (ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Согласован) ИЛИ &НеИспользоватьСтатусыЗаказовКлиентов) И | ДокументЗаказКлиента.СуммаАвансаДоОбеспечения > 0 И | ЕСТЬNULL(РасчетыСКлиентамиОстатки.КОплатеРасход, 0) < ДокументЗаказКлиента.СуммаАвансаДоОбеспечения И | РасчетыСКлиентамиОстаткиНаДатуАктуальности.КОплатеОстаток > 0 | ТОГДА | ИСТИНА |// ПРОСРОЧЕНО ОБЕСПЕЧЕНИЕ ////////////////////////////////////////////////// | КОГДА | ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Согласован) И | ДокументЗаказКлиента.СуммаДокумента + ДокументЗаказКлиента.СуммаВозвратнойТары > 0 И | ДокументЗаказКлиента.ДатаОтгрузки <> ДАТАВРЕМЯ(1,1,1) И | ДокументЗаказКлиента.ДатаОтгрузки < &ТекущаяДата И | (ЕСТЬNULL(РасчетыСКлиентамиОстатки.КОплатеРасход, 0) >= ДокументЗаказКлиента.СуммаАвансаДоОбеспечения ИЛИ | ДокументЗаказКлиента.ПорядокРасчетов <> ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным)) | ТОГДА | ИСТИНА |// ПРОСРОЧЕНА ПРЕДОПЛАТА ДО ОТГРУЗКИ /////////////////////////////////////// | КОГДА | ДокументЗаказКлиента.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным) И | (ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.КОбеспечению) ИЛИ &НеИспользоватьСтатусыЗаказовКлиентов) И | ДокументЗаказКлиента.СуммаПредоплатыДоОтгрузки > 0 И | ЕСТЬNULL(РасчетыСКлиентамиОстатки.КОплатеРасход, 0) < ДокументЗаказКлиента.СуммаПредоплатыДоОтгрузки + ДокументЗаказКлиента.СуммаАвансаДоОбеспечения И | РасчетыСКлиентамиОстаткиНаДатуАктуальности.КОплатеОстаток > 0 | ТОГДА | ИСТИНА |// ПРОСРОЧЕНА ОЖИДАЕТСЯ ОТГРУЗКА /////////////////////////////////////////// | КОГДА | ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.КОбеспечению) И | ДокументЗаказКлиента.ДатаОтгрузки <> ДАТАВРЕМЯ(1,1,1) И | ДокументЗаказКлиента.ДатаОтгрузки < &ТекущаяДата И | (ЕСТЬNULL(РасчетыСКлиентамиОстатки.КОплатеРасход, 0) >= ДокументЗаказКлиента.СуммаПредоплатыДоОтгрузки + ДокументЗаказКлиента.СуммаАвансаДоОбеспечения ИЛИ | ДокументЗаказКлиента.ПорядокРасчетов <> ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным)) | ТОГДА | ИСТИНА |// ПРОСРОЧЕНА ОТГРУЗКА ///////////////////////////////////////////////////// | КОГДА | (ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.КОтгрузке) ИЛИ &НеИспользоватьСтатусыЗаказовКлиентов) И | (ЕСТЬNULL(РасчетыСКлиентамиОстатки.КОплатеРасход, 0) >= ДокументЗаказКлиента.СуммаПредоплатыДоОтгрузки + ДокументЗаказКлиента.СуммаАвансаДоОбеспечения ИЛИ | ДокументЗаказКлиента.ПорядокРасчетов <> ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным)) И | ЕСТЬNULL(ЗаказыКлиентовОстаткиНаДатуАктуальности.КОформлениюОстаток, 0) <> 0 | ТОГДА | ИСТИНА |// ПРОСРОЧЕНА ОПЛАТА ПОСЛЕ ОТГРУЗКИ ///////////////////////////////////////// | КОГДА | ДокументЗаказКлиента.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным) И | (ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.КОтгрузке) ИЛИ &НеИспользоватьСтатусыЗаказовКлиентов) И | ДокументЗаказКлиента.СуммаДокумента - ДокументЗаказКлиента.СуммаАвансаДоОбеспечения - ДокументЗаказКлиента.СуммаПредоплатыДоОтгрузки > 0 И | ЕСТЬNULL(ЗаказыКлиентовОстатки.КОформлениюОстаток, 0) = 0 И | ЕСТЬNULL(РасчетыСКлиентамиОстатки.КОплатеКонечныйОстаток, 0) > 0 И | РасчетыСКлиентамиОстаткиНаДатуАктуальности.КОплатеОстаток > 0 | ТОГДА | ИСТИНА | ИНАЧЕ | ЛОЖЬ |КОНЕЦ КАК СостояниеПросрочено, |// СУММА ОПЛАТЫ ///////////////////////////////////////////////////////////// |ВЫБОР | КОГДА | ДокументЗаказКлиента.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным) И | ДокументЗаказКлиента.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию) И | ДокументЗаказКлиента.Проведен И | ДокументЗаказКлиента.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.НеСогласован) И | ДокументЗаказКлиента.СуммаДокумента > 0 | ТОГДА | ВЫРАЗИТЬ (ЕСТЬNULL(РасчетыСКлиентамиОстатки.КОплатеРасход, 0) КАК ЧИСЛО(15, 2)) | ИНАЧЕ | 0 |КОНЕЦ КАК СуммаОплаты, |// ПРОЦЕНТ ОПЛАТЫ /////////////////////////////////////////////////////////// |ВЫБОР | КОГДА | ДокументЗаказКлиента.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным) И | ДокументЗаказКлиента.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию) И | ДокументЗаказКлиента.Проведен И | ДокументЗаказКлиента.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.НеСогласован) И | ДокументЗаказКлиента.СуммаДокумента > 0 | ТОГДА | ВЫРАЗИТЬ ((ЕСТЬNULL(РасчетыСКлиентамиОстатки.КОплатеРасход, 0)) * 100 / ДокументЗаказКлиента.СуммаДокумента КАК ЧИСЛО(15, 0)) | ИНАЧЕ | 0 |КОНЕЦ КАК ПроцентОплаты, |// СУММА ПРОСРОЧЕННОЙ ОПЛАТЫ //////////////////////////////////////////////// |ВЫБОР | КОГДА | ДокументЗаказКлиента.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным) И | ДокументЗаказКлиента.Проведен И | ДокументЗаказКлиента.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.НеСогласован) И | ДокументЗаказКлиента.СуммаДокумента > 0 | ТОГДА | ВЫРАЗИТЬ (ЕСТЬNULL(РасчетыСКлиентамиОстаткиНаДатуАктуальности.КОплатеОстаток, 0) КАК ЧИСЛО(15, 2)) | ИНАЧЕ | 0 |КОНЕЦ КАК СуммаПросроченнойОплаты, |// СУММА ОТГРУЗКИ /////////////////////////////////////////////////////////// |ВЫБОР | КОГДА | ДокументЗаказКлиента.Проведен И | ДокументЗаказКлиента.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.НеСогласован) И | ДокументЗаказКлиента.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Согласован) И | ДокументЗаказКлиента.СуммаДокумента > 0 | ТОГДА | ДокументЗаказКлиента.СуммаДокумента - ЕСТЬNULL(ЗаказыКлиентовОстатки.СуммаОстаток, 0) | ИНАЧЕ | 0 |КОНЕЦ КАК СуммаОтгрузки, |// ПРОЦЕНТ ОТГРУЗКИ ///////////////////////////////////////////////////////// |ВЫБОР | КОГДА | ДокументЗаказКлиента.Проведен И | ДокументЗаказКлиента.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.НеСогласован) И | ДокументЗаказКлиента.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Согласован) И | ДокументЗаказКлиента.СуммаДокумента + ДокументЗаказКлиента.СуммаВозвратнойТары > 0 | ТОГДА | ВЫРАЗИТЬ ((ДокументЗаказКлиента.СуммаДокумента + ДокументЗаказКлиента.СуммаВозвратнойТары - ЕСТЬNULL(ЗаказыКлиентовОстатки.СуммаОстаток, 0)) * 100 | / (ДокументЗаказКлиента.СуммаДокумента + ДокументЗаказКлиента.СуммаВозвратнойТары) КАК ЧИСЛО(15, 0)) | ИНАЧЕ | 0 |КОНЕЦ КАК ПроцентОтгрузки, |// ДОЛГ (+ НАМ ДОЛЖНЫ, - МЫ ДОЛЖНЫ)////////////////////////////////////////// |ВЫБОР | КОГДА | ДокументЗаказКлиента.Проведен И | ((ДокументЗаказКлиента.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.НеСогласован) И | ДокументЗаказКлиента.СуммаДокумента > 0) ИЛИ | ДокументЗаказКлиента.ПорядокРасчетов <> ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным)) | ТОГДА | ВЫРАЗИТЬ (ЕСТЬNULL(РасчетыСКлиентамиОстатки.СуммаКонечныйОстаток, 0) КАК ЧИСЛО(15, 2)) | ИНАЧЕ | 0 |КОНЕЦ КАК СуммаДолга, |ВЫБОР | КОГДА | ДокументЗаказКлиента.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным) И | ДокументЗаказКлиента.Проведен И | ДокументЗаказКлиента.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.НеСогласован) И | ДокументЗаказКлиента.СуммаДокумента > 0 | ТОГДА | ВЫБОР | КОГДА | ЕСТЬNULL(РасчетыСКлиентамиОстатки.СуммаКонечныйОстаток, 0) > 0 | ТОГДА | ВЫРАЗИТЬ ((ЕСТЬNULL(РасчетыСКлиентамиОстатки.СуммаКонечныйОстаток, 0) * 100 / ДокументЗаказКлиента.СуммаДокумента) КАК ЧИСЛО(15, 0)) | ИНАЧЕ | ВЫРАЗИТЬ ((ЕСТЬNULL(-РасчетыСКлиентамиОстатки.СуммаКонечныйОстаток, 0) * 100 / ДокументЗаказКлиента.СуммаДокумента) КАК ЧИСЛО(15, 0)) | КОНЕЦ | ИНАЧЕ | 0 |КОНЕЦ КАК ПроцентДолга |ИЗ | Документ.ЗаказКлиента КАК ДокументЗаказКлиента |ЛЕВОЕ СОЕДИНЕНИЕ | РегистрНакопления.РасчетыСКлиентами.ОстаткиИОбороты(,,,,ЗаказКлиента = &РасчетныйДокумент) КАК РасчетыСКлиентамиОстатки |ПО | Истина |ЛЕВОЕ СОЕДИНЕНИЕ | РегистрНакопления.РасчетыСКлиентами.Остатки(КОНЕЦПЕРИОДА(&ТекущаяДата, ДЕНЬ), ЗаказКлиента = &РасчетныйДокумент) КАК РасчетыСКлиентамиОстаткиНаДатуАктуальности |ПО | Истина |ЛЕВОЕ СОЕДИНЕНИЕ | РегистрНакопления.ЗаказыКлиентов.Остатки(, ЗаказКлиента = &ЗаказКлиента) КАК ЗаказыКлиентовОстатки |ПО | Истина |ЛЕВОЕ СОЕДИНЕНИЕ | РегистрНакопления.ЗаказыКлиентов.Остатки(КОНЕЦПЕРИОДА(&ТекущаяДата, ДЕНЬ), ЗаказКлиента = &ЗаказКлиента) КАК ЗаказыКлиентовОстаткиНаДатуАктуальности |ПО | Истина |ГДЕ | ДокументЗаказКлиента.Ссылка = &ЗаказКлиента | |"); ПорядокРасчетов = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЗаказКлиента, "ПорядокРасчетов"); Запрос.УстановитьПараметр("ЗаказКлиента", ЗаказКлиента); Запрос.УстановитьПараметр("РасчетныйДокумент", ?(ПорядокРасчетов = Перечисления.ПорядокРасчетов.ПоДоговорамКонтрагентов, Договор, ЗаказКлиента)); Запрос.УстановитьПараметр("ТекущаяДата", НачалоДня(ТекущаяДата())); Запрос.УстановитьПараметр("НеИспользоватьСтатусыЗаказовКлиентов", НЕ ПолучитьФункциональнуюОпцию("ИспользоватьСтатусыЗаказовКлиентов")); Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); ЗаполнитьЗначенияСвойств(СостояниеРасчетов, Выборка); КонецЕсли; КонецПроцедуры |
|||
85
РенеДекарт
18.06.14
✎
15:15
|
(84) разработчики УТ первый раз сели за 1С?
|
|||
86
Segate
18.06.14
✎
15:29
|
(85) предлжи вариант оптимальнее, навскидку.
|
|||
87
РенеДекарт
20.06.14
✎
16:14
|
(86) если уж наваяли такое 1С, так пусть промежуточные "архивы" пользуют - регистры, что угодно.
Прекрасно известно, что 1С не может сама отсеять "старую" инфо, показывая только актуальную (по типу "сбросил в архив и забыл, но все в пределах шаговой доступности за все года). |
|||
88
Tilirxs
21.06.14
✎
12:25
|
(71) все хорошо.
|
|||
89
Tilirxs
21.06.14
✎
12:28
|
Всем спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |