Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
23 Окт 2017, 01:50
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Справочник. Автоматическое заполнение реквизита.  (Прочитано 625 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн dds1990

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-11-08
  • Сайт: 
  • Профессия: Ученик 1С
Всем доброго времени суток!

Существует такая задачка - Необходимо заполнять справочник при проведении документа, в целом с ней я справился, но есть один нюанс... В один из реквизитов справочника необходимо генерировать числовой код, который в свою очередь не должен совпадать с числовыми кодами сгененированными ранее. Буду благодарен любой помощи!

// Заполнение справочника УникальныеНомера

  Для Каждого СтрокаТабличнойЧасти ИЗ ТабОборотНоменклатуры Цикл
КоличествоНоменклатуры = СтрокаТабличнойЧасти.Количество;
Пока КоличествоНоменклатуры > 0 Цикл
НовыйЭлемент = Справочники.УникальныеНомера.СоздатьЭлемент();
НовыйЭлемент.Наименование = СтрокаТабличнойЧасти.Наименование;
НовыйЭлемент.УникальныйНомер = ; // На этом этапе у меня возникает вопрос.
НовыйЭлемент.Записать();
КоличествоНоменклатуры = КоличествоНоменклатуры - 1;
КонецЦикла;
КонецЦикла;


Оффлайн Дмитрий@

  • *****
  • Сообщений: 731
  • РЕПУТАЦИЯ: 133
  • КПД: 18%
  • Ссылка на примеры работ https://yadi.sk/d/ksVluPMB
  • Регистрация: 2015-02-27
    • Skype: ShuplecovDima
  • Сайт: 
  • Профессия: Программист 1С
А почему нельзя использовать стандартные свойства справочника "Автонумерация"?
Ссылка на примеры работ https://yadi.sk/d/ksVluPMB

Оффлайн DmitriyF

  • *****
  • Сообщений: 725
  • РЕПУТАЦИЯ: 47
  • КПД: 6%
  • Регистрация: 2013-03-18
  • Сайт: 
  • Профессия: Разработчик 1С
Всем доброго времени суток!

Существует такая задачка - Необходимо заполнять справочник при проведении документа, в целом с ней я справился, но есть один нюанс... В один из реквизитов справочника необходимо генерировать числовой код, который в свою очередь не должен совпадать с числовыми кодами сгененированными ранее. Буду благодарен любой помощи!

// Заполнение справочника УникальныеНомера

  Для Каждого СтрокаТабличнойЧасти ИЗ ТабОборотНоменклатуры Цикл
КоличествоНоменклатуры = СтрокаТабличнойЧасти.Количество;
Пока КоличествоНоменклатуры > 0 Цикл
НовыйЭлемент = Справочники.УникальныеНомера.СоздатьЭлемент();
НовыйЭлемент.Наименование = СтрокаТабличнойЧасти.Наименование;
НовыйЭлемент.УникальныйНомер = ; // На этом этапе у меня возникает вопрос.
НовыйЭлемент.Записать();
КоличествоНоменклатуры = КоличествоНоменклатуры - 1;
КонецЦикла;
КонецЦикла;
так в чем проблема то, получаешь последний код и делай с ним что хочешь. Увеличивай уменьшай. Если конечно по порядку.

Оффлайн dds1990

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-11-08
  • Сайт: 
  • Профессия: Ученик 1С
А почему нельзя использовать стандартные свойства справочника "Автонумерация"?

Я думал об этом, в перспективе это должно стать печатным штрих кодом, автонумерация не очень в этом плане подходит.
Добавлено: 08 Ноя 2015, 15:55

Всем доброго времени суток!

Существует такая задачка - Необходимо заполнять справочник при проведении документа, в целом с ней я справился, но есть один нюанс... В один из реквизитов справочника необходимо генерировать числовой код, который в свою очередь не должен совпадать с числовыми кодами сгененированными ранее. Буду благодарен любой помощи!

// Заполнение справочника УникальныеНомера

  Для Каждого СтрокаТабличнойЧасти ИЗ ТабОборотНоменклатуры Цикл
КоличествоНоменклатуры = СтрокаТабличнойЧасти.Количество;
Пока КоличествоНоменклатуры > 0 Цикл
НовыйЭлемент = Справочники.УникальныеНомера.СоздатьЭлемент();
НовыйЭлемент.Наименование = СтрокаТабличнойЧасти.Наименование;
НовыйЭлемент.УникальныйНомер = ; // На этом этапе у меня возникает вопрос.
НовыйЭлемент.Записать();
КоличествоНоменклатуры = КоличествоНоменклатуры - 1;
КонецЦикла;
КонецЦикла;
так в чем проблема то, получаешь последний код и делай с ним что хочешь. Увеличивай уменьшай. Если конечно по порядку.

Опыта обращения с языком не хватает,пока не могу понять как это сделать, решился спросить.

Оффлайн Дмитрий@

  • *****
  • Сообщений: 731
  • РЕПУТАЦИЯ: 133
  • КПД: 18%
  • Ссылка на примеры работ https://yadi.sk/d/ksVluPMB
  • Регистрация: 2015-02-27
    • Skype: ShuplecovDima
  • Сайт: 
  • Профессия: Программист 1С
Алгоритм создания номеров опишите.
Ссылка на примеры работ https://yadi.sk/d/ksVluPMB

Оффлайн DmitriyF

  • *****
  • Сообщений: 725
  • РЕПУТАЦИЯ: 47
  • КПД: 6%
  • Регистрация: 2013-03-18
  • Сайт: 
  • Профессия: Разработчик 1С
dds1990, а какая разница? у тебя уже код есть по умолчанию. используй его да и все.
Добавлено: 08 Ноя 2015, 16:06

Дмитрий@, я так понимаю он не знает алгоритма. ему нужен полный рандом

Оффлайн dds1990

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-11-08
  • Сайт: 
  • Профессия: Ученик 1С
А почему нельзя использовать стандартные свойства справочника "Автонумерация"?

Создаваться должно по типу
xxx-yyy + 1

где x - вид номенклатуры выраженный числом, а y - единица номенклатуры.


Оффлайн DmitriyF

  • *****
  • Сообщений: 725
  • РЕПУТАЦИЯ: 47
  • КПД: 6%
  • Регистрация: 2013-03-18
  • Сайт: 
  • Профессия: Разработчик 1С
ГСЧ = Новый ГенераторСлучайныхЧисел(255);
ГСЧ.СлучайноеЧисло(0, 10000);

Добавлено: 08 Ноя 2015, 16:12

А почему нельзя использовать стандартные свойства справочника "Автонумерация"?

Создаваться должно по типу
xxx-yyy + 1

где x - вид номенклатуры выраженный числом, а y - единица номенклатуры.
прочитай свое первое сообщение. мы сами должны гадать что у тебя к чему.
Добавлено: 08 Ноя 2015, 16:40

так в чем точнее проблема? у тебя уже есть некоторые данные. правильно? ты более точнее напиши что не получается

Последний раз редактировалось: DmitriyF; 08 Ноя 2015, 16:40. Причина: Объединение сообщений

Оффлайн Дмитрий@

  • *****
  • Сообщений: 731
  • РЕПУТАЦИЯ: 133
  • КПД: 18%
  • Ссылка на примеры работ https://yadi.sk/d/ksVluPMB
  • Регистрация: 2015-02-27
    • Skype: ShuplecovDima
  • Сайт: 
  • Профессия: Программист 1С
Если длина номера не фиксирована и не дополняется нулями, то можно так
Цитировать
&НаСервере
Функция УстановитьУникальныйНомерНаСервере()
   
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |   ПОДСТРОКА(Номенклатура.Код, 7, 5) КАК Номер
   |ИЗ
   |   Справочник.Номенклатура КАК Номенклатура";
   Результат = Запрос.Выполнить();
   Выборка = Результат.Выбрать();
   ТаблицаЗначений = Новый ТаблицаЗначений;
   МассивТипов = Новый Массив;
   МассивТипов.Добавить(Тип("Число"));
   КвалификаторыЧисла = Новый КвалификаторыЧисла(5,0);
   ОписаниеТипов = Новый ОписаниеТипов(МассивТипов,,КвалификаторыЧисла);
   ТаблицаЗначений.Колонки.Добавить("Номер",ОписаниеТипов);
   Пока Выборка.Следующий() Цикл
      НоваяСтрока = ТаблицаЗначений.Добавить();
      НоваяСтрока.Номер = Число(Выборка.Номер);
   КонецЦикла;
   Запрос.Текст =
   "ВЫБРАТЬ
   |   Таблица.Номер
   |ПОМЕСТИТЬ ВТТаблица
   |ИЗ
   |   &Таблица КАК Таблица
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ ПЕРВЫЕ 1
   |   Таблица.Номер
   |ИЗ
   |   ВТТаблица КАК Таблица
   |
   |УПОРЯДОЧИТЬ ПО
   |   Таблица.Номер УБЫВ";
   Запрос.УстановитьПараметр("Таблица",ТаблицаЗначений);
   Результат = Запрос.Выполнить();
   Выборка = Результат.Выбрать();
   МаксимальныйНомер = 0;
   Пока Выборка.Следующий() Цикл
      МаксимальныйНомер = Выборка.Номер;
   КонецЦикла;
   Возврат МаксимальныйНомер;
   
КонецФункции

&НаКлиенте
Процедура УстановитьУникальныйНомер(Команда)
   МаксимальныйНомер = УстановитьУникальныйНомерНаСервере();
   УникальныйНомер = "ВидНоменклатуры"+"ЕдиницаНоменклатуры"+Строка(МаксимальныйНомер+1);
КонецПроцедуры
Ссылка на примеры работ https://yadi.sk/d/ksVluPMB


Теги:
 

Заполнение табл. части документа из табл. части другого документа

Автор WillРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 11
Просмотров: 7270
Последний ответ 16 Авг 2012, 21:50
от Will
Заполнение табличной части документа табличной частью из другого документа

Автор PeaceownerРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 2460
Последний ответ 30 Ноя 2011, 07:10
от has
Заполнение поля табличной части документа из табличной части справочника.

Автор Kurt_WagnerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 4053
Последний ответ 06 Апр 2015, 20:08
от Kurt_Wagner
Заполнение табличной части документа реквизитами табличной части справочника

Автор kaf_infoРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 509
Последний ответ 10 Май 2017, 20:44
от ilnur75
заполнение закладки "Материалы" в документе "Поступление из переработки"

Автор Sasa1CРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 3511
Последний ответ 10 Июн 2013, 22:34
от Sasa1C

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

oleg-x
89 Сообщений
alex0402
43 Сообщений
AIFrame
42 Сообщений
Oldman06
31 Сообщений
vitasw
29 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
29 Сообщений
Golickoff Golickoff
27 Сообщений
Liv98 Liv98
20 Сообщений
MuI_I_Ika MuI_I_Ika
18 Сообщений
DmitriyF DmitriyF
14 Сообщений

* Кто онлайн

  • Точка Гостей: 217
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal