Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/26: Рейтинг темы: голосов - 26, средняя оценка - 4.81
32 / 32 / 9
Регистрация: 15.02.2010
Сообщений: 215
1
1C 8.x

Префикс номера документа по условию в УТ10

04.10.2012, 14:13. Показов 4638. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите сделать хитрый нумератор?

Поступление товаров и услуг, нужно чтобы если Отражать в НУ БУ, то номер шел как обычно по порядку от 00001 до 0000N по обычным настройкам базы.
Если Отражать НУ БУ=Ложь, то номер должен идти с префиксом S00001 и так далее
Сейчас приходится в ручную бить. Простая подмена номера через программу не помогает, т.к. отраженные идут например 00587 а не отраженные S00783, и если я получаю стандартный номер 00588, и меняю первый символ, то получаю "номер уже существует"...
Как сделать?
Лезть в ПриПолученииНовогоНомера()
или ПередЗаписью искать в регистрах последний не отраженный...
ненаю. Хелп.

(готовый текст с указаниев "вставить там то" оплачу)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.10.2012, 14:13
Ответы с готовыми решениями:

1c8 Ут10.3 Расхождение Документа И Z-отчета
Есть Z-отчет в котором 39 чеков на сумму 31052 (при необходимости могу прикрепить скан) и документ...

Запрет редактирования документа по условию
(8.3.УП.) Добрый день. Имеется документ, в котором есть реквизит: статус, с предопределенными...

Изменение значений реквизитов документа по условию
есть форма, есть реквизит со ссылкой на документ,пользователь выбирает "марку привода А",и...

Выбор значения реквизита документа по условию
Здравствуйте. В собственной конфигурации 1с 8.3 потребовалось сделать такую логику: справочник...

6
900 / 877 / 8
Регистрация: 15.03.2012
Сообщений: 2,680
04.10.2012, 19:20 2
В процедуре ОбщегоНазначения.ПриУстановкеНовогоНомераДокументаПриУстановкеНовогоНомера(), просто вставьте:
1C
1
2
3
Если ТипЗнч(Источник) = Тип("ДокументОбъект.ПоступлениеТоваровИУслуг") И Источник.ОтображатьБУ Тогда
     Префикс = "S";
КонецЕсли;
Платформа для разных префиксов сама нормально ведет нумерацию.
0
32 / 32 / 9
Регистрация: 15.02.2010
Сообщений: 215
05.10.2012, 10:11  [ТС] 3
и все таки, не хочет.
Ниже рабочий вариант
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    ДлинаНомераСПрефиксом = 7;
    ПрефиксНУ = "С";
    Если ЭтотОбъект.ОтражатьВНалоговомУчете=Ложь И НЕ Значениезаполнено(ЭтотОбъект.Номер) ТОГДА    
    // получить последний
        Запрос = Новый Запрос;
        Запрос.Текст = "
            |ВЫБРАТЬ ПЕРВЫЕ 1 
            |   ПоступлениеТоваровУслуг.Номер
            |ИЗ
            |   Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
            |ГДЕ
            |   ПоступлениеТоваровУслуг.ОтражатьВНалоговомУчете = &ОтражатьВНалоговомУчете
            |УПОРЯДОЧИТЬ ПО
            |   ПоступлениеТоваровУслуг.Номер УБЫВ";
    
        Запрос.УстановитьПараметр("ОтражатьВНалоговомУчете", Ложь);
        
        
        Ном = СокрЛП(Запрос.Выполнить().Выгрузить()[0].Номер);    
        Номер=ПрефиксНУ+Формат(Число(Сред(ном,2))+1,"ЧВН= ; ЧЦ="+(ДлинаНомераСПрефиксом-1)+" ; ЧГ=");
        Записать();
    КонецЕсли;
Спасибо! Можно закрывать
0
900 / 877 / 8
Регистрация: 15.03.2012
Сообщений: 2,680
05.10.2012, 10:46 4
Цитата Сообщение от sibbear Посмотреть сообщение
и все таки, не хочет.
Значит Вы что то не так делаете.

Цитата Сообщение от sibbear Посмотреть сообщение
Ниже рабочий вариант
А когда нужно будет в следующем году обнулить нумерацию, Вы что будете делать?
0
900 / 877 / 8
Регистрация: 15.03.2012
Сообщений: 2,680
05.10.2012, 10:58 5
В моем коде были опечатки. Я надеюсь Вы не из-за них от него отказались?

Вот полностью рабочий:
1C
1
2
3
4
5
6
7
8
9
Процедура ПриУстановкеНовогоНомераДокументаПриУстановкеНовогоНомера(Источник, СтандартнаяОбработка, Префикс) Экспорт
    ОбщегоНазначения.ДобавитьПрефиксОрганизации(Источник, Префикс);
    ОбщегоНазначения.ДобавитьПрефиксУзла(Префикс);
    
    Если ТипЗнч(Источник) = Тип("ДокументОбъект.ПоступлениеТоваровУслуг") И Источник.ОтражатьВБухгалтерскомУчете Тогда
        Префикс = "S-" + Префикс;
    КонецЕсли;
    
КонецПроцедуры
Миниатюры
Префикс номера документа по условию в УТ10  
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
05.10.2012, 11:23 6
Цитата Сообщение от sibbear Посмотреть сообщение
Ниже рабочий вариант
1C
1
2
Номер=ПрефиксНУ+Формат(Число(Сред(ном,2))+1,"ЧВН= ; ЧЦ="+(ДлинаНомераСПрефиксом-1)+" ; ЧГ=");
        Записать();
Вариант рабочий, но скорее познавательный. Добейтесь правильной работы системы по схеме автора конфигурации, как советует Fenomen.
0
32 / 32 / 9
Регистрация: 15.02.2010
Сообщений: 215
05.10.2012, 16:05  [ТС] 7
Нет, опечатки я сам поправил ))) не так все плохо. Я то как раз за то, что бы меньше самописного кода...
Еще могут быдь подковырки? Автонумератор вкл/выкл, подписки (не знаю еще что это, но а вдруг) ?
потому, что он при любом раскладе номер ставит обычный

Добавлено через 7 минут
Мда, видимо все именно так плохо. Опечатки я правил, да не доправил...
Спасибо! Все заработало!

Первый вариант пригодиться для общего развития, много моментов там понял для себя...
0
05.10.2012, 16:05
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.10.2012, 16:05
Помогаю со студенческими работами здесь

Запрет на повторное перепроведение документа по условию
Помогите пожалуйста. Не получается реализовать запрет на перепроведение. Т.е. я создаю документ в...

Вывод определенных колонок документа по условию
Доброе утро. Подскажитк как сделать так чтоб при выборе "Вид планирования- Тарифный план" в...

Уменьшение номера документа
1с Бухгалтерия 8 Номер документов имеет вид: А0510/00001 А префикс, 05 месяц, 10 год.. дальше...

Проверка номера документа
г-да, требуется Ваша подсказка куда и как копать. Есть некое приложение в котором пользователи в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Почему при инициализации массива 3х3х3 будет создано 13 одномерных массивов?
Alexander-7 16.01.2025
При инициализации многомерного массива, в данном случае трехмерного массива размерностью 3x3x3, может возникнуть путаница относительно того, как структура данных организована в памяти. Общее число. . .
Использование связки C# и PHP в корпоративной разработке и микросервисной архитектуре
InfoMaster 16.01.2025
Введение в интеграцию C# и PHP В современной корпоративной разработке все чаще возникает потребность в создании гибких и масштабируемых решений, способных эффективно решать широкий спектр. . .
Как использовать Kerio дома для управления сетью и пользователями
InfoMaster 16.01.2025
Использование технологий для улучшения повседневной жизни стало неотъемлемой частью современного быта. Одной из таких технологий является Kerio — мощный инструмент для управления сетью и. . .
Есть ли будущее у DVD и Blu-ray?
InfoMaster 16.01.2025
В эпоху стремительного развития цифровых технологий и повсеместного распространения потоковых сервисов вопрос о будущем физических носителей информации становится все более актуальным. Особенно остро. . .
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
Параллельное программировани­е: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru