|
Не знаю как организовать цепочки платежей 1С 8.2 | ☑ | ||
---|---|---|---|---|
0
CepeLLlka
08.09.11
✎
19:11
|
Вобщем у меня вот такое дело..
Я получаю Таблицу организаций.. допустим вот так Организация1 Организация2 Организация3 Организация4 Организация5 Организация6 И мне нужно запустить цикл как бы.. чтобы у меня создались платёжки следующим образом Первая платёжка Организация1↓ ↓ Организация2 Вторая платёжка Организация2 ↓ Организация3 ТретьяПлатёжка Организация3 ↓ Организация4 И т.д.. И я не знаю как сделать.. вобщем я получаю строку Для Каждого ТекСтрока ИЗ ТаблицаОрганизаций Цикл Ну и начинаю Платёжка = Документы.ПлатежноеПоручение.СоздатьДокумент() Платёжка.Организация = ТекСтрока.Организация; Платёжка.БанковскийСчет = ТекСтрока.Организация.БанковскийСчетПоУмолчанию; И т.д.. А вот когда дело доходит до Платёжка.Контрагент.. О_О ?_? Как быть то тут мне? У меня ведь он в следующей строке я его ещё не получил.. понимаю что решение простое.. и нужно просто как то сохранять строки может в переменные - ТекущийПлательщик и ТекущийПолучатель.. но что-то ума не хватает и не хочется сделать новый велосипед.. подскажите пожалуйста... Очень вас прошу.. как всегда .. ваш друг - CepeLLlka.. |
|||
1
CepeLLlka
08.09.11
✎
19:11
|
Ох Щит! Стрелочки не отобразились :(
|
|||
2
CepeLLlka
08.09.11
✎
19:19
|
Парни... ну что же вы.. подскажите пожалуйста..
|
|||
3
zak555
08.09.11
✎
19:22
|
> Ох Щит!
где Меч ? |
|||
4
CepeLLlka
08.09.11
✎
19:23
|
(3) ЗАааааааааак.. друг мой :) Как я рад тебя читать :)
Меча нету :) Есть только Магия :) Слушай Серёг.. я не знаю как сделать.. я сижу думаю конечно.. и почти придумал... но кажется будет так стрёмно это.. подскажи мне, а? |
|||
5
zak555
08.09.11
✎
19:25
|
контрагенты где ?
|
|||
7
CepeLLlka
08.09.11
✎
19:29
|
(5) В смысле где? Зак.. ну ты чё..
Мне как бы нужно перевести бабло из организации 1 в организацию 6 только через несколько посредников.. вот.. И начало и конец у меня в таблице.. |
|||
9
SnarkHunter
08.09.11
✎
19:31
|
Детский сад "Лопушок"...
|
|||
10
zak555
08.09.11
✎
19:31
|
(7)
1. у тебя появился поклонник 2. конкретнее задачу |
|||
11
ParaWiz
08.09.11
✎
19:35
|
(7) А что в 1С то потянуло ? :) это "стрёмно" как-то, поверь :)
|
|||
12
CepeLLlka
08.09.11
✎
19:37
|
(10) хМм.. ну давай конкретней..
У меня есть ТаблицаОрганизаций... В ней организации.... Организация1 Организация2 Организация3 Организация4 Организация5 Организация6 И мне нужно создать документы ПлатежныеПоручения таким образом чтобы деньги перечислились с Организация1 На Организация6 То есть вот так Платёжка 1 Организация1 -> Организация2 Платёжка 2 Организация2 -> Организация3 Платёжка 3 Организация3 -> Организация4 Платёжка 4 Организация4 -> Организация5 Платёжка 5 Организация5 -> Организация6 Вот и всё.. Как я пытаюсь сделать это.. Я начинаю перебирать строки таблицы и затык в том, что не нужный мне контрагент в следующей строке.. а у меня цикл пока что ещё в этой.. Выглядит это вот так Для Каждого ТекСтрока ИЗ ТаблицаОрганизаций Цикл Ну и начинаю Платёжка = Документы.ПлатежноеПоручение.СоздатьДокумент() Платёжка.Организация = ТекСтрока.Организация; Платёжка.БанковскийСчет = ТекСтрока.Организация.БанковскийСчетПоУмолчанию; |
|||
13
zak555
08.09.11
✎
19:39
|
и что тут делать ?
|
|||
14
PR
08.09.11
✎
19:39
|
Неужели кто-то платит ТС деньги за программирование. Не могу поверить в это. Даже студент знает, как перебрать строки таблицы значений в цикле.
Про уровень, когда программист знает, что "для каждого" перебирает совершенно не обязательно по порядку я молчу конечно, но цикл-то уж... |
|||
15
CepeLLlka
08.09.11
✎
19:41
|
Вобщем я решил делать вот так
Для Каждого Строчка ИЗ ТаблицаПосредников Цикл Если Строчка.Индекс = 0 Тогда ТекПлательщик = Стр.Плательщик; Продолжить; КонецЕсли; Платёжка = Документы.ПлатежноеПоручение.СоздатьДокумент() Платёжка.Организация = ТекПлательщик; Платёжка.БанковскийСчет = ТекПлательщик.БанковскийСчетПоУмолчанию; Платёжка.Контрагент = Строчка.Плательщик Платёжка.СчетКонтрагента = Строчка.Плательщик.БанковскийСчетПоУмолчанию; И тут бла бла бла ТекПлательщик = Строка.Плательщик.. Мне кажется плохо да? |
|||
16
ParaWiz
08.09.11
✎
19:41
|
(14) Видимо курс программирования на паскале убрали из вузов :)
|
|||
17
ParaWiz
08.09.11
✎
19:42
|
(15) последний шаг цикла подумай ;)
|
|||
18
CepeLLlka
08.09.11
✎
19:43
|
(17)? А что не так?
|
|||
19
zak555
08.09.11
✎
19:44
|
странно : почему в БП нет ссылки в спр Контры на Организации ?
|
|||
20
zak555
08.09.11
✎
19:44
|
тебе нужна ТЗ миниму из двух колонок : организация и контрОрганизации
|
|||
21
zak555
08.09.11
✎
19:45
|
(14) возьми себе и научи за 100
|
|||
22
ParaWiz
08.09.11
✎
19:45
|
(18) ладно ет я уже сплю ... не обращай на (17) внимание
|
|||
23
CepeLLlka
08.09.11
✎
19:45
|
(19) У меня тоже не было.. я добавлял новый вид операции типа и менял тип поля - Контрагент на типа - СправочникОрганизации
Вот каким-то таким способом Если Объект.ВидОперации = ВидыОперацийПлатежноеПоручениеПеречислиениеДС Тогда Элементы.Контрагент.ОграничениеТипа = Новый ОписаниеТипов("СправочникСсылка.Организации"); Иначе Элементы.Контрагент.ОграничениеТипа = Новый ОписаниеТипов("СправочникСсылка.Контрагенты"); КонецЕсли; |
|||
24
CepeLLlka
08.09.11
✎
19:47
|
(19) Зак.. ты лучше скажи.. я правильно поступил что так стал делать? Просто перескочив строчку? Или есть более оптимальное решение?
И может быть мне такое создание документов лучше организовать как-нибудь при помощи "ВводНаОсновании".. я правда не знаю даже где примерчик подглядеть.. может ты знаешь? |
|||
25
CepeLLlka
08.09.11
✎
20:00
|
Зак.. а не подскажешь каким образом можно выводить сообщения справа снизу? Хочу чтобы там описывалось что сейчас происходит типа.. ну если мне нужно будет платёжек 200 создать к примеру.. то это займёт какое-то время я думаю.. хочу чтобы показывалось что работа идёт типа..
|
|||
26
zak555
08.09.11
✎
20:01
|
ты тз из двуз колонок сделал ?
|
|||
27
CepeLLlka
08.09.11
✎
20:02
|
(26) Да нет.. я уже всё решил.. ты просто не понял задачу видимо.. хотя я всё чётко описал..
У меня всё создаётся.. всё ок.. и быстро очень.. Я хочу просто создать полосу загрузки что ли.. вот.. не знаешь где подглядеть? |
|||
28
CepeLLlka
08.09.11
✎
20:03
|
Я завтра днём ещё подниму эту тему.. когда людей побольше будет.. может кто подобрее подскажет как лучше сделать создание платёжек.. при помощи - ВводНаОсновании..
|
|||
29
PR
08.09.11
✎
20:04
|
(28) Мне кажется, завтра у тебя два варианта, либо закроют ветку либо застебут. И то и другое будет правильным IMHO.
|
|||
30
Ворон
08.09.11
✎
20:21
|
Кто=Неопределено;
Для каждого Организация из СписокОрганизаций Цикл Если Кто=Неопределено Тогда Кто=Организация; Продолжить; КонецЕсли; Кому=Организация; ЗабабахатьПлатежку(Кто,Кому,СуммаСколько); Кто=Кому; КонецЦикла; Как-то так. |
|||
31
CepeLLlka
08.09.11
✎
20:34
|
(30) Смотри (15) До этого я сам допёр.. просто я думаю что я то дибил.. наверное есть более разумные решения..
|
|||
32
Ворон
08.09.11
✎
20:36
|
СколькоСтрок=СписокОрганизаций.Количество();
СтарыйЗаголовок=ПолучитьЗаголовокПриложения(); Счетчик=1; Для каждого... Цикл УстановитьЗаголовокПриложения(СтарыйЗаголовок+" Обработано "+Формат(Счетчик/СколькоСтрок,"ЧЦ=5; ЧДЦ=2; ЧРД=,")+" %"); ...Тут работа... КонецЦикла; УстановитьЗаголовокПриложения(СтарыйЗаголовок); А так обображаем прогресс в заголовке окна |
|||
33
Ворон
08.09.11
✎
20:36
|
....+В цикле увеличиваем Счетчик...
Счетчик=Счетчик+1; |
|||
34
CepeLLlka
08.09.11
✎
20:39
|
(32) Спасибо тебе огромное .. а то что-то отзывчивых сёдня мало.. Мррр.. Спасибки ещё раз :-*
|
|||
35
Ворон
08.09.11
✎
20:42
|
Незачто.
А зачем ВводНаОсновании? НоваяПлатежка=Документы.ПлатежноеПоручениеИсходящее.НайтиПоНомеру("ТутНомер").Скопировать(); Или через существующее методом Скопировать(). |
|||
36
PR
08.09.11
✎
20:43
|
Сохраню себе веточку, буду показывать клиентам, когда будут говорить, что я слишком дорого беру :))
|
|||
37
zak555
08.09.11
✎
20:44
|
(36) это сколько ?
|
|||
38
PR
08.09.11
✎
20:46
|
(37) Не будем в тематической ветке офтопить :))
|
|||
39
Лефмихалыч
08.09.11
✎
20:58
|
(0) СКД тебе в руки, с ее помощью легко и непринужденно иерархия документов делается. Книжка хрусталевой раскрывает тему довольно подробно
|
|||
40
CepeLLlka
08.09.11
✎
21:08
|
(39) Уважаемый ЛефМихалыч.. может смылите если у вас есть? :)
|
|||
41
Лефмихалыч
08.09.11
✎
21:10
|
(40) говори по-русски, я не понял ни чего
|
|||
42
CepeLLlka
08.09.11
✎
21:11
|
(40) Я имел ввиду.. если у вас есть такая книжка.. не затруднило бы ли вас отослать мне её по электронной почте? :)
|
|||
43
PR
08.09.11
✎
21:13
|
(42) Это надо же такое модератору предложить :))
https://1cers.ru/rules.php, пункт 3. |
|||
44
CepeLLlka
08.09.11
✎
21:15
|
(43)Ну бань тогда.. что уж теперь.. давно ведь зуб точишь на меня :)
|
|||
45
PR
08.09.11
✎
21:16
|
(44) Я? За что? :))
|
|||
46
CepeLLlka
08.09.11
✎
21:22
|
(45).. Да.. лучше не бань.. а помоги мне чучуть...
Я скину сюда свой код.. а ты как специалист высокого уровня дашь мне несколько советов как правильно делать, а как не правильно.. А я буду благодарен тебе.. что скажешь? |
|||
47
PR
08.09.11
✎
21:25
|
(46) Понимаешь в чем дело. Я привык людям в глаза правду-матку резать, а в данном случае случай такой запущенный, что я лучше промолчу :))
|
|||
48
CepeLLlka
08.09.11
✎
21:35
|
А не подскажешь можно ли в модуле сразу все переменные с одинаковым называнием переименовать? Ну по типа - НайтиИЗаменить? Нету такой функции? Я что-то поискал и не нашёл..
|
|||
49
PR
08.09.11
✎
21:43
|
(48) Найти и заменить.
|
|||
50
CepeLLlka
08.09.11
✎
21:49
|
Да... Правка-Замена..
|
|||
51
CepeLLlka
08.09.11
✎
21:53
|
Кстати (32) Это работает только в На клиенте.. а у меня создание плажек то выполняется на сервере..
(49) Скажи только название медота/процедуры ну чтобы мне выводить кол-во обработанных документов справа снизу в окне сообщений.. пожалуйста.. |
|||
52
PR
08.09.11
✎
21:57
|
(51) Ты о чем?
|
|||
53
CepeLLlka
08.09.11
✎
21:59
|
(52) Ну вот смотри.. у меня будет создаваться много платёжных поручений в одной операции как-бы.. и мне бы где-нибудь сообщать пользователю о том сколько обработанно и сколько осталось обработать.. чтобы он видел что процесс идёт, а не думал что всё повисло.. вот..
Я видел что справа снизу выводятся сообщения когда сохраняешь справочники/документы.. можно ли их как-нибудь мне использовать для вывода сообщений своих? |
|||
54
PR
08.09.11
✎
22:01
|
(53) Да
|
|||
55
CepeLLlka
08.09.11
✎
22:01
|
(54) Внимание вопрос..
Как? :) Я пока решил что буду как в 77 юзать строку состояния.. |
|||
56
PR
08.09.11
✎
22:03
|
(55) Внимание ответ. Ответ в СП.
|
|||
57
CepeLLlka
08.09.11
✎
22:06
|
ПоказатьОповещениеПользователя()
|
|||
58
CepeLLlka
08.09.11
✎
22:53
|
Фуухх.. сделал :) Даже картинку в УТ украл - Длительная операция.. Спасибо тебе.. что ругаешь меня :)
|
|||
59
CepeLLlka
08.09.11
✎
23:03
|
А можно сделать булево не заполненным?
Ну то есть у меня реквизит типа Булево.. и мне нужно чтобы вот он был не заполнен.. ПолучитьПустоеЗначение() Или что-нибудь такое? Нее? |
|||
60
zak555
08.09.11
✎
23:57
|
Е.Ю.Хрусталева - Разработка сложных отчетов в 1С_Предприятии 8.pdf
|
|||
61
CepeLLlka
09.09.11
✎
10:15
|
(60) Да.. я скачал вчера.. Глянул мельком оглавление.. не нашёл про иерархическое создание документов..
Зак.. скажи мне следующее.. я хочу чтобы у меня один реквизит типа булево по умолчанию был не заполнен.. как сделать? |
|||
62
zak555
09.09.11
✎
10:36
|
(61)
1. сделать ТЗ с двумя колонками : организация/контрагент 2. чё :? |
|||
63
CepeLLlka
09.09.11
✎
18:23
|
Ладно Зак.. забей на это..
Слушай лучше другую проблему.. Я сделал так чтобы у меня по клику создавались документы.. А теперь мне нужно чтобы если ещё раз нажмёшь кнопку - "создать документы" они не создавались, а просто изменялись значения в уже созданых.. Как такое сделать? Подскажи пожалуйста.. |
|||
64
CepeLLlka
09.09.11
✎
18:28
|
Блин.. однако много факторов придётся учитывать..
Ладно.. а такой вопрос.. Что быстрее выполнится.. Выборка документов из базы их удаление и создание новых.. Или же выборка документов из базы и изменение данных в них? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |