Предопределние даты документа в 1С 7.7

Тема в разделе "1C и всё что с ней связано", создана пользователем 4xter, 24 ноя 2010.

Статус темы:
Закрыта.
  1. 4xter

    4xter Гость

    Всем доброго времени суток. Порыскал по форуму, но решения не нашел. Проблема собственно вот в чем: пишу обработку, которая из текстового файла втягивает данные и формирует заявки в 1С 7.7 (конфиг. не типовой, релиз 7.70.027). Так вот в текстовом файле есть разные даты документа с разными позициями. Когда я использую Док.Новый(); а потом к этому док применяю дату из файла, то номер документа остаётся из текущей даты документа, а не подхватывается следующий по требуемой дате. Как быть?
    Пример:
    в файле содержаться строки (формат: ДатаДок,ВнешнийКодЗаказа Артикул):
    24.11.10;1111; КодАрт1;
    24.11.10;2222; КодАрт2 ;
    25.11.10;3333; КодАрт3 ;
    24.11.10;4444; КодАрт1 ;

    Привязаться к внешнему коду заказа не могу, т.к. он генерируется не мной и может быть абсолютно любым.
    По идее должно быть загружено 4 документа: 3 с датой 24.11.10 и номерами 1, 2 и 3; 1 док от 25.11.10 с номером 1.
    а у меня получается что док от 25.11.10 загружается с номером 3, т.к. команда Док.Новый() первоначально создает его с таким номером от 24.11.10, а потом я программно меняю дату. И последний док тоже создается с номером 3, т.к. 24.10.11 этот номер остаётся свободен.

    Заранее спасибо за помощь.
     
  2. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    а как насчет того чтобы делать загрузку в ТаблицуЗначений, ее уже сортировать как нужно по дате, а из нее уже формировать заявки?
     
  3. 4xter

    4xter Гость

    Была такая идея, но смутило вот что:
    24.11.10;1111; КодАрт1;
    24.11.10;2222; КодАрт2 ;
    24.11.10;4444; КодАрт1 ;
    25.11.10;3333; КодАрт3 ;
    25.11.10;5555; КодАрт3 ;

    вот отсортированный вариант. Док.Новый() создаст так: 3 док-та от 24.11.10 с номерами 1,2,3. Потом создаст док от 25.11.10 с номером 4, а потом попытается создать ещё один док с номером 4 от 25-го числа.
     
  4. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    я не совсем понял - контроля уникальности номеров заявок нет что-ли? или контроль уникальности должен быть равен 1 дню?
     
  5. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Как я понимаю, уникальность номеров в пределах дня.
    Можно программно получать новый номер. Что-то вроде "УстановитьНовыйНомер()"
     
  6. Natalya

    Natalya Active Member

    Регистрация:
    2 фев 2008
    Сообщения:
    25
    Симпатии:
    0
    Если номер не указывать, то присвается индивидуальный номер автоматически независимо от даты.
    Код ( (Unknown Language)):
    тз.ВыбратьСтроки();
    Пока тз.ПолучитьСтроку()=1 Тогда
    Док.Новый();
    Док.ДатаДок=дата;
    КонецЦикла;
    Если это не происходит, то в обработке прописано присвоение номеров.
     
  7. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Разбираемся:
    Правее даты какие-то номерочки - это не есть номер, который нужно присвоить докам, или просто мусор?
    Нужно, чтобы документы шли нормальным порядком, сами нумеровались уникальными номерами?

    Если так или почти так, а может чуть нет так, но все-ж таки да.
    У ваших доков в конифиге задан порядок нумерации в пределах короткого периода: неделя или месяц, в чем черт не шутит, может и день! (я по телеку видел, "извращенцы" называются) ! Когда загружаете данные прошлого месяца, программа думает так:
    * Док.Новый() - "новый док тебе - ладно. Сегодня у нас какой месяц - ноябрь. Так, в ноябре последний номер шостый. Значит это будет семый".
    * Док.ДатаДок=дата; "Программер! у тебя еще команда есть? Ага, перенести документ на октябрь. Ладно пусть 20.10.10"
    * Док.Записать() "Хлопцы подвиньтесь! А что на седьмом кресле уже кто-то сидит? Программер фигов! Чего мне номер не поменял?"

    Все просто, без всяких таблиц и сортиров.
    ДатаСтарая = РабочаяДата(ДатаИзФайла);
    Док.Новый()
    и так до конца
    РабочаяДата(ДатаСтарая);
     
  8. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    А что, тупо написать Док.НомерДок = НужныйНомер совсем не катит ?

    Я всякие документы разными обработками постоянно создаю. Вот, в одной из баз они всегда нумеруются
    номерами заказчика, присланными в файлике. Проблем ни разу не испытывал.
    Смахивает на колумбово яйцо :welcome:
     
  9. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Мне все же кажется, через УстановитьНовыйНомер или как ее там, менее перверсионно :welcome:
     
  10. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Как, как? И где таких слов набрался? :) У нас так во дворе отродясь никто так не ругался.
    Vbs! Я понял проблему, что в файле нет номеров. Ему, лишь-бы система сама присваивала. Но наталкивался на дублирование и конфликт уникальности.
     
  11. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Тогда возможны два варианта :
    1. Все документы за период - новые, других нет. Организуем счетчик с единицы, который сбрасываем при изменении даты.
    2. В базе могут быть свои документы - используем менее перверсивный (sic!) метод от unknown181538
    PS. Справедливо для перверсивной периодичности "день"
     
  12. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Ааа, был один еврей в Германии...
    vbs..."перверсивный", ага спс.
     
  13. 4xter

    4xter Гость

    Как бы не странно выглядело для Вас это, но нумерация действительно уникальна в пределах одного дня(было это до меня и менять навряд ли будут)! Номера заявок в файле это просто нумерация во внешней системе (если быть точнее то сайте, с которого получаем эти самые заявки) и использовать их для нумерации в 1С нельзя.
    Мне нравится метод с рабочей датой, вот счас буду пробовать его. Никаких "страшных" последствий от изменения этой даты не будет. Естественно я её верну в исходное положение после окончания обработки!
     
  14. 4xter

    4xter Гость

    получилось с помощью изменения рабочей даты. всё Ок. Но всё таки не будет ли каких последствий. По идее не должно, но хотелось бы удостоверится от ГУРУ=))
     
  15. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Не должно быть никаких последствий. Изменение рабочей даты нормально процедура, помимо прочего, доступная пользователю.
     
  16. 4xter

    4xter Гость

    Спасибо. Думаю, что тему можно закрывать=)
     
  17. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Тему закроем, но где слова благодарности персоналиям?
     
  18. 4xter

    4xter Гость

    исправился=)
     
Загрузка...
Похожие Темы - Предопределние даты документа
  1. Boatswain
    Ответов:
    3
    Просмотров:
    894
  2. Amfion
    Ответов:
    5
    Просмотров:
    1.029
  3. kobrin13
    Ответов:
    0
    Просмотров:
    1.038
  4. Amfion
    Ответов:
    89
    Просмотров:
    13.193
  5. Gelergo
    Ответов:
    1
    Просмотров:
    1.762
Статус темы:
Закрыта.

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