• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

1С7.7 3 строки ТЗ=1операция=4проводки

  • Автор темы KiR
  • Дата начала
K

KiR

Есть внешняя обработка, на ней ТЗ. Каждые 3 строки ТЗ должны образовывать одну операцию, которая фромирует 4 проводки. в ТЗ к примеру 12 строк. При обходе тз с помощью цикла "выбратьстроки/получитьстроку" первая проводка записывается нормально, а на остальные 2 вываливает ошибку - "Операция.Записать();Номер не уникальный!". Как присваивать номер операции?
 
V

vbs

Увы, при создании новой операции внешними средствами ситуация
Номер не уникальный появляется почти всегда
Приходится делать так :
Операция.УстановитьНовыйНомер (Номер)
Переменной Номер можно присвоить значение, например в цикле.
 
K

KiR

Хорошая идея! Спасибо!
Еще один маленький вопросик остался. По-идее операция это тожить документ, ему при создании - Операция.Новая() сразу должен присваиваться номер. можно ли этот номер как-то получить?

Идея хорошая, но видимо ошибочная ибо:
Операция.УстановитьНовыйНомер(Номер);
Поле агрегатного объекта не обнаружено (УстановитьНовыйНомер)
 
V

vbs

Виноват. Надо
Операция.Документ.УстановитьНовыйНомер(Номер)
 
K

KiR

А что по поводу получения номера?
По-идее операция это тожить документ, ему при создании - Операция.Новая() сразу должен присваиваться номер. можно ли этот номер как-то получить?
 
V

vbs

Операция.Документ.НомерДок
При программном создании новой операции присваивается как-то автоматически (типа нумератора).
А как контролируется уникальность номеров - посмотри процедуру ПриЗаписи() в форме операции
 
K

kaa

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

Где - то так!

А ошибка
Номер не уникальный
Появляется когда создается документ не попадающий в период нумератора относительно рабочей даты

тоесть создаем операцию периодичность номеров год (автоматом присваевается номер этого года) , и присваеваем ей дату прошлого года а в прошлом году такой номер есть!!! Нужно либо менять рабочую дату перед формирование документа/операции либо
УстановитьНовыйНомер(<Префикс>)
 
K

KiR

Ага. Спасибо всем!
Сам уже разобрался. Создаю проводки ведь сейчас, а данные то за 2005 год. Так что пошел другим путем - Создаю сначала пустой документ операция текущим числом, потом создаю операцию нужным числом. Как тока операция записывается - помечаю документ операцию на удаление. Бухов устраивает - так что больше ковыряться не вижу смысла)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!