|   |   | 
| 
 | В какой момент происходит присвоение номера документу? | ☑ | ||
|---|---|---|---|---|
| 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) С поиском - вроде получилось. Зачем мне лишние ссылки?
  Ну, т.е., может она и не лишняя - потом еще несколько раз эта связь используется, но уже всё понаписано и ориентируется просто на номер. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |