|
В какой момент происходит присвоение номера документу? | ☑ | ||
---|---|---|---|---|
0
mdv92
27.09.11
✎
11:55
|
Перед Записью - его еще нет?
|
|||
1
Fragster
гуру
27.09.11
✎
11:57
|
а может и есть...
|
|||
2
DrShad
27.09.11
✎
12:02
|
в подписке на события
|
|||
3
pioneer_22
27.09.11
✎
12:03
|
нету, отловить можно с помощью ПриУстановкеНовогоНомера()
|
|||
4
mdv92
29.09.11
✎
16:11
|
Задачка - автоматически создавать договора с тем же номером, что и счет.
Перед записью - его еще нет (хотя в монопольном режиме - вроде, был...) А ПриЗаписи - их почему-то создалось уже 4 одинаковых! Кусочек этот писала не я, он был вставлен, но отключен. Я включила - и вот результат. Причем, непонятно, в какой момент они размножаются! Если жать на кнопку "записать" - он так и остается один... |
|||
5
Ненавижу 1С
гуру
29.09.11
✎
16:16
|
(4) задача полный бред
|
|||
6
Umka2008
29.09.11
✎
16:16
|
В ПослеЗаписи() пробегай по договору и ставь ему номер дока.
|
|||
7
Ненавижу 1С
гуру
29.09.11
✎
16:23
|
(6) это че за бред?
|
|||
8
hhhh
29.09.11
✎
16:35
|
(5) не, ну у нас уже давно работает такая штука. Только у нас номер не при записи, а уже при открытии формы есть.
|
|||
9
Сергей Д
29.09.11
✎
16:39
|
ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>)
УстановитьНовыйНомер (SetNewNumber) Синтаксис: УстановитьНовыйНомер(<ПрефиксНомера>) Параметры: <ПрефиксНомера> (необязательный) Тип: Строка. Префикс устанавливаемого номера. Значение по умолчанию: Пустая строка Описание: Устанавливает новый номер документа для заданного префикса номера. Доступность: Сервер, толстый клиент, внешнее соединение. Примечание: Для документов с нумерацией в пределах периода, номер устанавливается в пределах периода, соответствующего установленной дате документа. Если дата - пустая, процедура установит номер в пределах периода соответствующего пустой дате. |
|||
10
Сергей Д
29.09.11
✎
16:40
|
Ну и это... фотографию в студию :)
|
|||
11
Лефмихалыч
29.09.11
✎
16:41
|
(4) а просто при выводе на печать номер счета, в котором выбран договор что мешает?
|
|||
12
Лефмихалыч
29.09.11
✎
16:41
|
ну, или пры выводе договора на печать выводить номер счета - как там надо, не важно
|
|||
13
rutony
29.09.11
✎
16:47
|
(4) Код закомментирован, я разкомментировала, он работает криво...
Гениально) |
|||
14
_
vovanidze_3412341 29.09.11
✎
17:08
|
А договор это в данном случае справочник "Договора" ?
|
|||
15
mdv92
01.10.11
✎
13:02
|
(14) Да, справочник "Договора". При открытии делать договор нереально - еще нет контрагента, и вообще, до записи - не правильно, ведь могут по ходу дела и передумать.
Договор - реквизит счета. После записи - как я могу создать договор, не записав его в счет? Мне бы понять, почему договора размножаются, если идет создание "при записи"!, потому что смоделировать сознательно эту ситуацию я не смогла, да они и не каждый раз размножаются. |
|||
16
mdv92
02.10.11
✎
12:26
|
Надо сегодня разобраться!
|
|||
17
Шапокляк
02.10.11
✎
12:44
|
(16) Создаете новый счет. Если в счете не выбран договор, или выберите имеющийся или пропишите процедуру создания нового. В зависимости от своих действий запишите в какую-нибудь глобальную переменную документа надо ли перенумеровывать договор. При записи документа в зависимости от значения этой переменной или перенумеровываете договор или нет. Если вы в существующем счете создаете новый договор, то и нумеруйте его сразу в соответствии с номером счета.
P.S. А вообще тут такой форум... Вы ж никаких своих вариантов не выкладываете, а только вопросы задаете. Если б вы мужского пола были, то вам бы уже продиктовали адрес куда идти. |
|||
18
mdv92
02.10.11
✎
13:00
|
(17) Там примерно так и сделано, только договора почему-то размножаются одинаковые.
Может, "При закрытии" вставить? |
|||
19
Шапокляк
02.10.11
✎
13:04
|
(18) Да где там? Код покажите.
|
|||
20
kuza2000
02.10.11
✎
13:06
|
А зачем вам стока договоров? Что за конфигурация?
|
|||
21
mdv92
02.10.11
✎
13:12
|
ПриЗаписи -
Если НадоСоздаватьДоговор() Тогда ДоговорКонтрагента = СоздатьНовыйДоговор(); КонецЕсли; А вот эти процедуры: Функция НадоСоздаватьДоговор() НомерСчета = Прав(СокрЛП(Номер),4); // в БП 7.7 номера счетов сосояли из 6 символов Если НомерСчета=ДоговорКонтрагента.Номер И НачалоДня(Дата)=НачалоДня(ДоговорКонтрагента.Дата) Тогда Возврат Ложь; Иначе Возврат Истина; КонецЕсли; КонецФункции Функция СоздатьНовыйДоговор() НомерСчета = Прав(СокрЛП(Номер),4); // в БП 7.7 номера договоров-счетов состояли из 4 символов НовыйДоговор = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент(); НовыйДоговор = ДоговорКонтрагента.Скопировать(); НовыйДоговор.Владелец = Контрагент; НовыйДоговор.Номер = НомерСчета; НовыйДоговор.Дата = Дата; НовыйДоговор.УстановитьНовыйКод(); НовыйДоговор.СформироватьНаименованиеДоговора(НомерСчета, Дата); НовыйДоговор.Записать(); Возврат НовыйДоговор.Ссылка; КонецФункции |
|||
22
Asmody
02.10.11
✎
13:18
|
СоздатьЭлемент, а потом Скопировать — это феерично
|
|||
23
mdv92
02.10.11
✎
13:21
|
(22) Это не я писала. А что, их 2 получается???
Не, ну записывается-то один! |
|||
24
mdv92
02.10.11
✎
13:22
|
А как надо написать?
|
|||
25
Шапокляк
02.10.11
✎
13:33
|
Во-первых, Скопировать точно убрать. Во-вторых, попытайтесь, если уж вы создаете новый договор, создавать его с незаполненным реквизитом Номер, а в процедуре ПослеЗаписи проверяйте, если в договоре Номер пустой,то заполняйте его номером счета.
В-третьих... А почему вообще номер договора может не совпадать с номером счета? Вы дату существующего счета меняете и у вас номер меняется? Или вы выбираете в счет руками любой договор? |
|||
26
Asmody
02.10.11
✎
13:35
|
(25) в-третьих — это как раз понятнее всего. Это ленивые бухгалтера
|
|||
27
mdv92
02.10.11
✎
13:35
|
Так а там валюта взаиморасчетов записывается и прочие реквизиты...
Я, наверное, в процедуру Функция НадоСоздаватьДоговор() НомерСчета = Прав(СокрЛП(Номер),4); // в БП 7.7 номера счетов сосояли из 6 символов Если НомерСчета=ДоговорКонтрагента.Номер И НачалоДня(Дата)=НачалоДня(ДоговорКонтрагента.Дата) Тогда Возврат Ложь; Иначе Возврат Истина; КонецЕсли; КонецФункции Вставлю поиск по наименованию счета - для проверки. |
|||
28
Asmody
02.10.11
✎
13:52
|
(27) в договоре сделай реквизит СчетОснование, если у на то пошло
|
|||
29
mdv92
02.10.11
✎
13:54
|
(28) С поиском - вроде получилось. Зачем мне лишние ссылки?
Ну, т.е., может она и не лишняя - потом еще несколько раз эта связь используется, но уже всё понаписано и ориентируется просто на номер. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |