Модераторы: stron
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Номер документа введённого на основании, равен номеру документа основания 
:(
    Опции темы
etc
Дата 5.8.2008, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


FCZ
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 23.2.2005
Где: Красногорск

Репутация: нет
Всего: 3



День добрый, люди добрые. 
Подскажите, как можно, и можно ли, реализовать следующую задумку.
Есть документ Приход с номером Пн-0001 и при вводе, на основании этого прихода, например перемещения, хотелось бы что бы номер перемещения имел вид Пм-0001/1. Затем при вводе второго перемещения на основании этой же приходной, номер уже имел бы вид Пм-0001/2 ну и т.д.  И плюс ко всему если перемещение вводится не на основании, то номер уже должен идти без "/1"
Вообще реально ли такое осуществить? Подскажите как?! 

Спасибо!
PM WWW ICQ   Вверх
Kaboom
Дата 5.8.2008, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 25.5.2007

Репутация: нет
Всего: нет



Цитата(etc @  5.8.2008,  09:10 Найти цитируемый пост)
Вообще реально ли такое осуществить?

Да.

Цитата(etc @  5.8.2008,  09:10 Найти цитируемый пост)
Подскажите как?! 

Для начала скажи версию 1С.
PM MAIL   Вверх
etc
Дата 5.8.2008, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


FCZ
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 23.2.2005
Где: Красногорск

Репутация: нет
Всего: 3



Сорри, забыл написать. 7.7  ТиС9.2
PM WWW ICQ   Вверх
Itsys
Дата 5.8.2008, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 7
Всего: 34



 smile На пальцах сложно объяснить... проще сделать....

Но надо найти процедуру в модуле формы ПеремещениеТМЦ "ЗаполнениеПоДокументуОснованию", пришли код процедуры, напишу что надо изменить....
PM MAIL WWW Skype   Вверх
Kaboom
Дата 5.8.2008, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 25.5.2007

Репутация: нет
Всего: нет



В модуле формы перемещения пишем процедуру ВводНаОсновании() в которой и формируем новый номер документа.
Код

Процедура ВводНаОсновании(ДокОснование)
   Если ДокОснование.Вид() = "ПриходнаяНакладная" Тогда
      КвоПеремещений = 0;
      Док = СоздатьОбъект("Документ");
      Док.ВыбратьПодчиненныеДокументы(,,ДокОснование.ТекущийДокумент());
      Пока Док.ПолучитьДокумент() = 1 Цикл
         Если Док.Вид() = "Перемещение" Тогда
            КвоПеремещений = КвоПеремещений + 1;
         КонецЕсли;
      КонецЦикла;
      НомерДок = СокрЛП(ДокОснование.НомерДок) + "/" + Строка(КвоПеремещений + 1);
   КонецЕсли;
КонецПроцедуры

Код не проверялся, возможны ошибки. Учтите также, что номер перемещения должен иметь большую длину чем номер приходной накладной, иначе указанный код нужно подправить.


PM MAIL   Вверх
etc
Дата 5.8.2008, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


FCZ
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 23.2.2005
Где: Красногорск

Репутация: нет
Всего: 3



Kaboom, спасибо, код отлично работает, но есть одно НО: 
Цитата

И плюс ко всему если перемещение вводится не на основании, то номер уже должен идти без "/1"

Если потом ввожу обычное перемещение, то он плюсуюе "/"
PM WWW ICQ   Вверх
Itsys
Дата 5.8.2008, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 7
Всего: 34



Цитата(etc @  5.8.2008,  11:21 Найти цитируемый пост)
Если потом ввожу обычное перемещение, то он плюсуюе "/" 

С этим ты уже ничего не сделаешь... так работает встроенный механизм генерации номера, как вариант можно предложить использовать не "/[индекс документа]", а префикс в втвоем варианте "Пм-10001", "Пм-20001", "Пм-30001" и т.д.
PM MAIL WWW Skype   Вверх
Kaboom
Дата 5.8.2008, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 25.5.2007

Репутация: нет
Всего: нет



Цитата(Itsys @  5.8.2008,  11:38 Найти цитируемый пост)
С этим ты уже ничего не сделаешь... 

Ну сделать можно. Просто нужно забыть о формировании номера самой 1С-кой и сделать свой механизм.
PM MAIL   Вверх
Itsys
Дата 5.8.2008, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 7
Всего: 34



Цитата(Kaboom @  5.8.2008,  12:45 Найти цитируемый пост)
Просто нужно забыть о формировании номера самой 1С-кой и сделать свой механизм

И сколько будет открываться новый документ при количестве документов перемещения ну допустим... 10000 за год?
PM MAIL WWW Skype   Вверх
Itsys
Дата 5.8.2008, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 7
Всего: 34



ЗЫ и как ты будешь разруливать ситуацию, когда одновременно 2 пользователя захотят ввести новое перемещение?
PM MAIL WWW Skype   Вверх
Kaboom
Дата 5.8.2008, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 25.5.2007

Репутация: нет
Всего: нет



Цитата(Itsys @  5.8.2008,  12:54 Найти цитируемый пост)
И сколько будет открываться новый документ при количестве документов перемещения ну допустим... 10000 за год? 

Сделать выборку с конца а не начала.
Цитата(Itsys @  5.8.2008,  13:15 Найти цитируемый пост)
ЗЫ и как ты будешь разруливать ситуацию, когда одновременно 2 пользователя захотят ввести новое перемещение? 

Можно константу с последним номером сделать, тогда и получение номера будет быстрее; а можно и записывать документ после открытия smile

Добавлено через 1 минуту и 14 секунд
Все же думаю что нет проблем которые не решаются  smile 
PM MAIL   Вверх
Itsys
Дата 5.8.2008, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 7
Всего: 34



Kaboom, я могу привести еще кучу "а если" при которых предложенные тобой варианты будут неработоспособны, но при этом я могу придумать средства обхода данных ситуаций, потом появятся новые проблемы и т.д. я за свою практику уже столько раз сталкивался с неработосособными системами ручной установки новых номеров.... Что большой тебе совет от меня - не делай так если не хочешь гемороя на свою Ж в дальнейшем. Лучше найти вариант, который устроит заказчика, и, при этом, будет использовать стандартный алгоритм присвоения номера документа.

Я думаю что хватит растекаться мыслями не связаннми с основным топиком....  smile 
PM MAIL WWW Skype   Вверх
Kaboom
Дата 5.8.2008, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 25.5.2007

Репутация: нет
Всего: нет



etc, соглашусь с Itsys, надежнее создать новый реквизит шапки для дополнительного номера документа.
 
PM MAIL   Вверх
sai_NT
Дата 8.8.2008, 01:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 8.8.2007

Репутация: нет
Всего: 3



Для этого и существует метод УстановитьНовыйНомер
Код

Процедура ВводНаОсновании(ДокОснование)
   Если ДокОснование.Вид() = "ПриходнаяНакладная" Тогда
      УстановитьНовыйНомер(ДокОснование.НомерДок + "/");
   КонецЕсли;
КонецПроцедуры

но могут появиться пробелы (т.е Пм-0001/1, Пм-0001/2 и сразу Пм-0001/4) так как кто-то начнет вводить документ на основании, а потом откажется. Хотя такая же ситуация возникнет и при удалении уже созданного документа при любых предложенных методиках.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "1C: Предприятие, SAP, ERP и учётные системы"
stron

Запрещается!

1. Обсуждение крэков, кейгенов и других подобных программ

Пробуйте искать сами или обращайтесь в приват к участникам форума.

Темы с подобными вещами будут немедленно удаляться, а нарушители - получать предупреждения.

Также запрещается обсуждение проблем работы этих программ (что куда вписать, куда что скопировать и т.п...)

2. Давать ссылки на взломанные продукты

  • Пожалуйста, пользуйтесь поиском перед тем, как задать вопрос - возможно ответ уже есть на форуме.
  • Название темы должно отражать её суть
  • Действия модераторов можно обсудить здесь

С уважением, stron, Pegas.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | 1C: Предприятие, SAP, ERP и учётные системы | Следующая тема »


 




[ Время генерации скрипта: 0.0866 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.