Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > нумерация документов


Автор: larabelle 30.10.2007, 09:24
Всем здравствуйте. 
По субжу. Приходные кассовые ордера забивались задним числом в разнобой. Соответственно хронологически они в базе по-порядку, а по номерам по беспорядку. Можно ли как-то перепронумеровать их или?

larabelle

Автор: SaschaL 30.10.2007, 17:09
Теоретически программно можно, нужно смотреть только какие компаненты этиидокументы используют.
Можно программно выбрать с сортировкой по дате чтобы они стояли по порядку и затем в цикле присваивать номер.
Например:
Цитата

Пока Запрос.Группировка(1) =1 цикл
      НомДок = НомДок + 1;
КонецЦикла;

Автор: larabelle 30.10.2007, 18:55
Цитата

Пока Запрос.Группировка(1) =1 цикл
      НомДок = НомДок + 1;
КонецЦикла;


Генеральная идея понятна,  если можно, то было бы интересно чуть подробнее.

Автор: SaschaL 30.10.2007, 19:06
Хорошо милая Larabelle!
Завтра вечером постраюсь сделать для вас примерчик!
Конечно если у Вас этот вопрос не горит.

Автор: larabelle 31.10.2007, 01:15
Цитата(SaschaL @ 30.10.2007,  17:06)
Завтра вечером постраюсь сделать для вас примерчик!

Буду весьма признательна и столь же благодарна, уважаемый SaschaL

Автор: SaschaL 2.11.2007, 07:57
ДОбрый день, Larabelle!
Прошу простить за задержку с ответом, было много работы.

Вот алгоритм как можно справиться с вашей проблемой, я воспользовался запросом по документу (для примера мною был взят один вид документа).


Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб, ном;
        ном = 0;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Обрабатывать НеПомеченныеНаУдаление;
    |НомерДок = Документ.КадровоеПеремещение.НомерДок;
    |ДатаДок = Документ.КадровоеПеремещение.ДатаДок;
.............
        |Группировка НомерДок;
Далее при обработке результатов запроса я воспользовался циклической обработкой результата запроса
       Пока Запрос.Группировка(1) =1 цикл
       Ном = Ном+1;
       Док=СоздатьОбъект("Документ.КадровоеПеремещение");
           Док.НайтиПоНомеру(Строка(Ном), Дата(0));        
            Если Док.Выбран() = 1 Тогда
                   Док.НомерДок = Ном;
 Док.Записать();


Вот в общем то и все


  

   

Автор: fx9 3.11.2007, 01:52
larabelle попробуйте прикрепленную обработку перенумерации документов, она выручала меня пару раз ;)

Автор: larabelle 3.11.2007, 05:52
To fx9, SaschaL 
спасибо, оле, респект, ура!

все получилось.
файл fx9 сработал мгновенно (даже испугаться не успела).

обработка Saschal'a задала пару вопросов "на подумать" - но в итоге все разрулилось.  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)