7.7 Перерасчет номеров документа

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем SCtYL, 23 мар 2011.

  1. TopicStarter Overlay
    SCtYL
    Offline

    SCtYL

    Регистрация:
    20 сен 2010
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    Собственно при удалении документа получается брешь в номерах документа. Я подумал сделать кнопку перерасчета номеров документа по всему журналу, но у меня чет плохо выходит. Дело в том, что номера документов идут не по порядку, т.к. время у документов одной даты могут идти не по порядку. Подскажите как лучше справиться с этой проблемой.
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Не совсем понятен вопрос. Вы хотите найти номера документов по виду которые отсутсвуют в периоде?
  3. TopicStarter Overlay
    SCtYL
    Offline

    SCtYL

    Регистрация:
    20 сен 2010
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    Просто перезаписать номера документов по порядку(дата, время). Или есть возможность при удалении документа у следующих за ним документов номера документа уменьшались на 1?
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Т.е выровнять нумерацию документов относительно времени?


    Такой возможности нет. Да и думаю что она не нужна.

    Собственно зачем вам это нужно? Опишите. Может существует другой способ решения вашей проблемы.
  5. TopicStarter Overlay
    SCtYL
    Offline

    SCtYL

    Регистрация:
    20 сен 2010
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    Да. Дело в том, что вносятся обработкой два типа отчета в один журнал, и из-за этого на одну дату документы идут не по времени.В качестве времени создан реквизит строковый.
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Двумя разными обработками грузите документы....
    В документах есть текстовый реквизит (время).
    Стоит задача после завершения работы обработак "выровнять" общую нумерацию... Правильно?
  7. TopicStarter Overlay
    SCtYL
    Offline

    SCtYL

    Регистрация:
    20 сен 2010
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    Одной обработкой.
    Но проблема в нем, что его можно редактировать только при создании объекта.
    Нумерация при занесении отчета выставляется отлично. Меня интересует что с нумерацией делать при удалении документа.
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    В таком случае вам нужно просто "сдвинуть" номера с учетом удаленного. .Прекрасная обработка по перенумерованию лежит в копилке - воспользуйтесь ею.
  9. TopicStarter Overlay
    SCtYL
    Offline

    SCtYL

    Регистрация:
    20 сен 2010
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    А можно поинтересоваться, а где она находиться?
  10. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
  11. TopicStarter Overlay
    SCtYL
    Offline

    SCtYL

    Регистрация:
    20 сен 2010
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    Скажите пожалуйста пароль от обработки, пытался в привате спросить но сообщения почему то не отправляются
  12. TopicStarter Overlay
    SCtYL
    Offline

    SCtYL

    Регистрация:
    20 сен 2010
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    Накидал вот такой кодик:
    Код:
    Процедура Перерасчет()
    НомерДо=0;
    ТабЗн=СоздатьОбъект("ТаблицаЗначений");
    ТабЗн.НоваяКолонка("ВремяСделки");  
    ТабЗн.НоваяКолонка("ДатаДока");
    ДокРег=СоздатьОбъект("Документ.РегистрВнутреннегоУчета");
    ДокРег.ВыбратьДокументы(); 
    Пока ДокРег.ПолучитьДокумент() = 1 Цикл 
    ТабЗн.НоваяСтрока();
    ТабЗн.ДатаДока=ДокРег.ДатаДока;
    ТабЗн.ВремяСделки=ДокРег.ВремяСделки;		
    КонецЦикла;	                             
    ТабЗн.Сортировать("ДатаДока+,ВремяСделки+");
    ТабЗн.ВыбратьСтроки();
    Пока ТабЗн.ПолучитьСтроку()=1 Цикл
    ДокРег.ВыбратьПоЗначению(ТабЗн.ДатаДока,ТабЗн.ДатаДока, "ВремяСделки",ТабЗн.ВремяСделки);
    Пока ДокРег.ПолучитьДокумент() = 1 Цикл
    НомерДо=НомерДо+1;
    ДокРег.НомерДок=НомерДо;
    ДокРег.НомерДока=НомерДо;
    ДокРег.Записать();
    ДокРег.Провести(ДокРег.ДатаДока);
    КонецЦикла;
    КонецЦикла;
    КонецПроцедуры 
    
    Но он ругается:
    Код:
     
    ДокРег.ВыбратьПоЗначению(ТабЗн.ДатаДока,ТабЗн.ДатаДока, "ВремяСделки",ТабЗн.ВремяСделки);
    {Журнал.РегистрВнутреннегоУчета.Форма.ФормаСписка.Модуль(38)}: Объект - документ определенного вида!
    
    Подскажите в чем загвоздка?
  13. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    плохой код
  14. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    Код:
    ]Процедура Перерасчет()
    НомерДо=0;
    ТабЗн=СоздатьОбъект("ТаблицаЗначений");
    ТабЗн.НоваяКолонка("Ссылка");  
    ТабЗн.НоваяКолонка("ВремяСделки");  
    ТабЗн.НоваяКолонка("ДатаДока");
    ДокРег=СоздатьОбъект("Документ.РегистрВнутреннегоУчета");
    ДокРег.ВыбратьДокументы(); 
    Пока ДокРег.ПолучитьДокумент() = 1 Цикл 
    ТабЗн.НоваяСтрока();
    ТабЗн.Ссылка = ДокРег.ТекущийДокумент();
    ТабЗн.ДатаДока=ДокРег.ДатаДока;
    ТабЗн.ВремяСделки=ДокРег.ВремяСделки;        
    КонецЦикла;                                 
    ТабЗн.Сортировать("ДатаДока+,ВремяСделки+");
    ТабЗн.ВыбратьСтроки();
    oDoc = CreateObject("Document.РегистрВнутреннегоУчета");
    Пока ТабЗн.ПолучитьСтроку()=1 Цикл
    oDoc.FindDocument(ТабЗн.Ссылка);
    НомерДо=НомерДо+1; // вот тут ты тоже погорячился, т.к. нужно будет вводить префиксы ибо номера неуникальные будут
    oDoc.НомерДок=НомерДо;
    oDoc.НомерДока=НомерДо;
    oDoc.Записать();
    oDoc.Провести(oDoc.ДатаДока);
    КонецЦикла;
    КонецПроцедуры 
    
    
    
  15. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Опять же не совсем работоспособный код. Не указан период выборки.
    Код:
    ДокРег.ВыбратьДокументы(); 
    
    
    
    выберет документы от рождества Христова. Насколько я понял задачу необходима перенумерация с определенной даты (допустим с начала года)...

    Код:
    ДокРег.ВыбратьДокументы(НачГода(ТекущаяДата()),); 
    
    
    
    Если же нет встает другая проблема - поиск последнего номера в предыдущем дне в качестве отправной точки.

    И опять же... Если каждый раз перенумеровывать с начала года - мартышкин труд. Можно или задавать дату интерактивно или найти автоматичски.
    Дело вкуса.

    Ну и как абсолютно правильно отметил фобец нужно присваивать промедуточный префикс из-за уникальности номера.
    Лучше всего это делать в первом цикле где заполняется ТЗ (необо присвоить новый номер с префискос, сохранить, а потом уже добавлять ссылку в ТЗ)
  16. Vlad
    Offline

    Vlad Модераторы Команда форума Модератор

    Регистрация:
    16 авг 2006
    Сообщения:
    3.517
    Симпатии:
    19
    Баллы:
    29
    На диске ИТС есть обработка Универсальная обработка подбора объектов. С ее помощью можно "залатать дыры" в нумерации.
  17. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Не подойдет.... В этой обработке нет возможности сортировки по внутреннему реквизиту (время)
  18. TopicStarter Overlay
    SCtYL
    Offline

    SCtYL

    Регистрация:
    20 сен 2010
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    Благодарствую, работает. А контроля уникальности там не стоит.

Поделиться этой страницей