Имя: Пароль:
1C
1С v8
Не знаю как организовать цепочки платежей 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
Блин.. однако много факторов придётся учитывать..

Ладно.. а такой вопрос..

Что быстрее выполнится..

Выборка документов из базы их удаление и создание новых..

Или же выборка документов из базы и изменение данных в них?