Очень нужна помощь в программировании!
X

Привет дорогой друг

Наш сайт существует и развиваетется за счет рекламы. Пожалуйста, отключите блокировку рекламы AdBlock или подобное, для нашего сайта. Спасибо!
Показано с 1 по 9 из 9
  1. #1
    Гость форума

    Регистрация
    07.06.2016
    Сообщений
    5
    Сказал(а) спасибо
    2
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию Очень нужна помощь в программировании!

    1.Имеется вот такая вот процедура. В справочнике ИнформационныеКарты ( это часть кода )
    2.Имеется переменная " КодКарты ", которая является реквизитом у некоего справочника.
    3.В режиме предприятия она естественно имеет поле Код Карты, которое задаётся в ручную.
    4.Предприятие 8.3. Розница 2.2.2.0

    Вопрос, как сделать, чтобы эта переменная при каждой новой записи автоматически выдавала
    новое значение. А величина приращения была единицей?



    Процедура ПередЗаписью(Отказ)


    Если ОбменДанными.Загрузка Тогда
    Возврат;
    КонецЕсли;

    Если ВидКарты = Перечисления.ВидыИнформац� �онныхКарт.Штриховая Тогда
    КодКарты = ("");
    КонецЕсли;

    Если ТипЗнч(ВладелецКарты) = Тип("СправочникСсылка.Конт� �агенты")
    ИЛИ ТипКарты = Перечисления.ТипыИнформац� �онныхКарт.Регистрационная Тогда
    ДатаСледующегоОпроса = Дата("00010101");

    КонецЕсли;
    КонецПроцедуры

  2. #2
    Гордость форума PRO

    Регистрация
    29.01.2010
    Сообщений
    1212
    Сказал(а) спасибо
    30
    Поблагодарили 261 раз(а) в 245 сообщениях

    По умолчанию Re: Очень нужна помощь в программировании!

    Ybxtuj yt gjyznyj
    1.В справочнике ИнформационныеКарты ( это часть кода )
    2.Имеется переменная " КодКарты ", которая является реквизитом у некоего справочника.
    Так код карты это реквизит какого-то справочника или же это реквизит справочника "ИнформационныеКарты"?


    - поле Код Карты, которое задаётся в ручную.
    - Вопрос, как сделать, чтобы эта переменная при каждой новой записи автоматически выдавала
    новое значение. А величина приращения была единицей?
    Так Код карты задается вручную или же должен задаваться системой?

    P.S. Заведи константу КодКарты в которой будет "последний занятый номер" и при записи номер карты бери из константы плюс один и записывай в константу новый номер.

  3. #3
    Гость форума

    Регистрация
    07.06.2016
    Сообщений
    5
    Сказал(а) спасибо
    2
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию Re: Очень нужна помощь в программировании!

    1. Это реквизит "ИнформационныеКарты".
    2. Должен задаваться автоматически при создании новой карты.

  4. #4
    Гордость форума PRO

    Регистрация
    29.01.2010
    Сообщений
    1212
    Сказал(а) спасибо
    30
    Поблагодарили 261 раз(а) в 245 сообщениях

    По умолчанию Re: Очень нужна помощь в программировании!

    Должен задаваться автоматически при создании новой карты.
    В модуле объекта есть обработчик события "ПриУстановкеНовогоКода"

    Вот в нём обращайтесь к константе, чтобы получить следующий номер для новой карты и изменить саму константу

  5. Пользователь сказал cпасибо:

    StefanRal0618 (16.06.2016)

  6. #5
    Гость форума

    Регистрация
    07.06.2016
    Сообщений
    5
    Сказал(а) спасибо
    2
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию Re: Очень нужна помощь в программировании!

    Большое спасибо! Очень помогли. В общем и целом я разобрался.

    Но кое-что всё-же не фурычит, а именно константа не увеличивается. В связи с этим последний вопрос.


    У меня получился вот такой вот кусок. Чего здесь не хватает, чтобы константа при создании новой записи увеличивалась на единицу?

    Процедура ПриУстановкеНовогоКода(Ст� �ндартнаяОбработка, Префикс)
    // Вставить содержимое обработчика.

    КодКарты = ПолучитьПрефиксНомера();

    КонецПроцедуры

    Функция ПолучитьПрефиксНомера() Экспорт

    Возврат Константы. КодКарты.Получить();

  7. #6
    Гордость форума PRO

    Регистрация
    29.01.2010
    Сообщений
    1212
    Сказал(а) спасибо
    30
    Поблагодарили 261 раз(а) в 245 сообщениях

    По умолчанию Re: Очень нужна помощь в программировании!

    его здесь не хватает, чтобы константа при создании новой записи увеличивалась на единицу?
    Хм-м-м.. Ну не знаю..:confused: На мой взгляд тут явно, кроме функции "получить" номер из константы, не хватает процедуры "установить" в константу новый номер (увеличенный на единицу).

    или я не прав?:blush:

  8. #7
    Гость форума

    Регистрация
    07.06.2016
    Сообщений
    5
    Сказал(а) спасибо
    2
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию Re: Очень нужна помощь в программировании!

    Боюсь показаться дураком, но с 1с я познакомился совсем недавно и то по острой необходимости. Ибо кроме меня заняться больше некому. С обработчиками я не очень понимаю как работать.


    Процедура ПриУстановкеНовогоКода(Ст� �ндартнаяОбработка, Префикс)
    // Вставить содержимое обработчика.

    КодКарты = ПолучитьПрефиксНомера();

    КонецПроцедуры


    Функция ПолучитьПрефиксНомера() Экспорт

    Возврат Константы. КодКарты.Получить();

    КонецФункции



    Процедура УстановитьНовыйНомер();

    Константы.КодКарты.Установ ить();

    КонецПроцедуры


    Процедура как я понимаю должна быть такая. Однако что в ней сделать, чтобы константа с каждой записью брала предыдущее значение и прибавляла единицу ума не приложу. Там цикл нужен или что?

  9. #8
    Гордость форума PRO

    Регистрация
    29.01.2010
    Сообщений
    1212
    Сказал(а) спасибо
    30
    Поблагодарили 261 раз(а) в 245 сообщениях

    По умолчанию Re: Очень нужна помощь в программировании!

    Цитата Сообщение от StefanRal0618 Посмотреть сообщение
    Процедура как я понимаю должна быть такая. Однако что в ней сделать, чтобы константа с каждой записью брала предыдущее значение и прибавляла единицу ума не приложу. Там цикл нужен или что?
    Ну вначале нужно определиться типом данных... Тип НомерКарты и тип Констатна.КодКарты это число или строка?

    Если число, тогда

    Процедура ПриУстановкеНовогоКода(Ст� �дартнаяОбработка, Префикс)
    // Вставить содержимое обработчика.

    КодКарты = ПолучитьПрефиксНомера();

    УстановитьНовыйНомер (КодКарты + 1);

    КонецПроцедуры


    Функция ПолучитьПрефиксНомера() Экспорт

    Возврат Константы.КодКарты.Получит ь();

    КонецФункции



    Процедура УстановитьНовыйНомер(Новы� �Номер);

    Константы.КодКарты.Установ ить(НовыйНомер);

    КонецПроцедуры

    Ну а если же КодКарты и Константа.КодКарты это например строка, то тогда меняется лишь оператор

    УстановитьНовыйНомер (Формат(Число(КодКарты) + 1));

  10. Пользователь сказал cпасибо:

    StefanRal0618 (16.06.2016)

  11. #9
    Гость форума

    Регистрация
    07.06.2016
    Сообщений
    5
    Сказал(а) спасибо
    2
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию Re: Очень нужна помощь в программировании!

    Ещё раз большое спасибо!

Похожие темы

  1. Помогите новичку в программировании
    от CaptainZolch в разделе Конфигурирование, программирование 1С - Предприятие
    Ответов: 2
    Последнее сообщение: 14.06.2016, 09:59
  2. Книги о программировании
    от foxtransfer в разделе eBooks
    Ответов: 0
    Последнее сообщение: 22.04.2011, 13:12
  3. нужна помощь в написании программки
    от inn в разделе Прикладное программирование
    Ответов: 1
    Последнее сообщение: 14.07.2008, 10:42

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •