Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/129: Рейтинг темы: голосов - 129, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 21.03.2010
Сообщений: 35

перерасчет реквизита документа (7.7)

09.08.2010, 12:07. Показов 23975. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.

Как правильно сделать обработку для перерасчета реквизита документа?

Сделала :
1. вариант - в обработке сделала ссылки на реквизиты док., а временные переменные так пересчитываю в обработке- считает, но отличается результат
2. вариант- в обработке
Наряд=СоздатьОбъект("Документ.НарядЗаказ ") ;
Наряд.ВыбратьДокументы(НачПериода,КонПер иода);
Пока Наряд.ПолучитьДокумент()=1 Цикл
Состояние("Заполнение выходной таблицы..."); //отображается внизу на панельке
Конт="";
ОткрытьФорму(Наряд.ТекущийДокумент(),Кон т);
Конт.СтрокаДействийФормы = "#Записать";
Конт.Форма.Закрыть(0);
Сообщить("Перепроведен документ: " + Строка(Наряд)); //в белом окошке отображается
КонецЦикла; //Наряд.ПолучитьДокумент()=1 Цикл

просто зависает 1с

Заранее огромное спасибо за помощь
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.08.2010, 12:07
Ответы с готовыми решениями:

Заполнение реквизита табличной части документа (строки, из справочника наименования, внутри документа)
Здравствуйте. Волею судеб нужно сваять пару документов в 1с 77. Вроде бы как все шло нормально, но наткнулся на нерешаемую для себя...

1С 7.7 Редактирование реквизита документа
Добрый день! Суть проблемы такова: после отгрузки товара со склада необходимо запретить редактирование всего документа кроме одного...

Автозаполнение реквизита формы документа
Друзья нужна Ваша помощь..Самописная конфа, в документе Расходная Накладная имеются реквизиты: ДОГОВОР и КОНТРАГЕНТ. ДОГОВОР имеет тип...

15
1 / 1 / 0
Регистрация: 24.07.2008
Сообщений: 658
09.08.2010, 13:42
я бы попробовал что-то типа
в обработке

Code
1
2
3
4
5
6
7
8
Наряд=СоздатьОбъект("Документ.НарядЗаказ");
Наряд.ВыбратьДокументы(НачПериода,КонПериода);
Пока Наряд.ПолучитьДокумент()=1 Цикл
Состояние("Заполнение выходной таблицы..."); //отображается внизу на панельке
Конт="Пересчет";
ОткрытьФормуМодально(Наряд.ТекущийДокумент(),Конт);
Сообщить("Перепроведен документ: " + Строка(Наряд)); //в белом окошке отображается
КонецЦикла; //Наряд.ПолучитьДокумент()=1 Цикл
а в документе

Code
1
2
3
4
5
6
7
8
9
10
11
Процедура ПриОткытии()
Если Форма.Параметр="Пересчет" Тогда
// пересчет
...
Записать();
Провести();
Форма.Закрыть();
КонецЕсли
// дальше то что было раньше в ПриОткрытии()
...
КонецПроцедуры
0
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
09.08.2010, 13:51
Если я правильно понял проблему, может быть, так лучше :

Наряд=СоздатьОбъект("Документ.НарядЗаказ ") ;
НарядЗ=СоздатьОбъект("Документ.НарядЗака з") ;
Наряд.ВыбратьДокументы(НачПериода,КонПер иода);
Пока Наряд.ПолучитьДокумент()=1 Цикл
НарядЗ.НайтиДокумент(Наряд.ТекущийДокуме нт());
Состояние("Заполнение выходной таблицы..."); //Изменяем найденный документ
НарядЗ.Записать();
Сообщить("Перепроведен документ: " + Строка(Наряд)); //в белом окошке отображается
КонецЦикла; //Наряд.ПолучитьДокумент()=1 Цикл
0
1 / 1 / 0
Регистрация: 24.07.2008
Сообщений: 658
09.08.2010, 14:11
vbs, а изменение реквизитов где в твоем варианте?
или расчет на то, что НарядЗ.Записать(); вызовет ПриЗаписи() в модуле формы документа?
0
0 / 0 / 0
Регистрация: 21.03.2010
Сообщений: 35
09.08.2010, 15:05
Hryv, а пересчет- здесь ссылка на процедуру из документа ?

Если Форма.Параметр="Пересчет" Тогда
// пересчет
0
1 / 1 / 0
Регистрация: 24.07.2008
Сообщений: 658
09.08.2010, 15:14
Да, вместо "..." надо подставить вызов нужной процедуры из документа
0
0 / 0 / 0
Регистрация: 21.03.2010
Сообщений: 35
09.08.2010, 15:28
Спасибо, Hryv
вопрос еще один:
в процедуре рентабельность есть такой код:

Если вопрос ("Открыть для ввода данных или для печати (если да- то вводим данные, нет- печатаем)", "Да+Нет+Отмена") = "Нет" Тогда

При записи- пересчитываем рентабельность
Если (НазваниеНабораПрав() = "ВыпискаМенеджер") Или (НазваниеНабораПрав() = "Администратор")Тогда
Рентабельность();

КонецЕсли;


Как сделать так, чтобы при вызове обработки это сообщения не появлялись, а по умолчанию было бы ДА
0
0 / 0 / 0
Регистрация: 01.01.2010
Сообщений: 226
09.08.2010, 15:45
Code
1
2
3
4
5
6
7
8
9
10
11
Процедура ВызовОбработки()
конт="Да";
ОткрытьФорму("Обработка.ТвояОбработка",конт);
КонецПроцедуры
 
Процедура ПриОткрытии()
нужноезнач="Да";
Если форма.параметр<>нужноезнач тогда
Если вопрос ("Открыть для ввода данных или для печати (если да- то вводим данные, нет- печатаем)", "Да+Нет+Отмена") = "Нет" Тогда
....
КонецПроцедуры
Что-то в этом роде
0
1 / 1 / 0
Регистрация: 24.07.2008
Сообщений: 658
09.08.2010, 16:20
В принципе, TimeDontWait правильное дал направление
Но если учесть, что у тебя уже Форма.Параметр="Пересчет", то просто в том месте где:
Если вопрос ("Открыть для ввода данных или для печати (если да- то вводим данные, нет- печатаем)", "Да+Нет+Отмена") = "Нет" Тогда

переделай условие, чтобы при Форма.Параметр="Пересчет" ничего не спрашивалось, а сразу делалось то что тебе надо
0
0 / 0 / 0
Регистрация: 21.03.2010
Сообщений: 35
09.08.2010, 16:47
спасибо, Вам TimeDontWait и Hryv вроде получилось..

сделала так:
Если Форма.Параметр="Пересчет" Тогда
нужноезнач="Да";
Рентабельность() ;


в процедуре рентабельность
...
Если Форма.Параметр<>"Пересчет" Тогда

Если вопрос ("Открыть для ввода данных или для печати (если да- то вводим данные, нет- печатаем)", "Да+Нет+Отмена", 1) = "Нет" Тогда

Правильно переделала?


Правда еще одно сообщение осталось...
Сохранить документ? (Документ будет перепроведен)
0
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
09.08.2010, 17:04
Цитата Сообщение от Hryv
vbs, а изменение реквизитов где в твоем варианте?
или расчет на то, что НарядЗ.Записать(); вызовет ПриЗаписи() в модуле формы документа?
Да избави Бог. Я просто не стал расписывать изменение реквизитов. Просто намекнул на то, что
использование двух одинаковых объектов должно помочь решить проблему
0
1 / 1 / 0
Регистрация: 24.07.2008
Сообщений: 658
09.08.2010, 17:19
Цитата Сообщение от Nastyusha
Правильно переделала?
Если работает, то правильно
нужноезнач="Да"; - это можно убрать



Цитата Сообщение от Nastyusha
Правда еще одно сообщение осталось...
Форма.Закрыть(0);

vbs, тут, похоже, намеками не помочь
0
0 / 0 / 0
Регистрация: 21.03.2010
Сообщений: 35
09.08.2010, 17:32
Записать();
Провести();
Форма.Закрыть(0); !!!!!!!!!!!
Так пересчитанные данные сохраняться?

Добавлено: Благодарю всех за помощь.

Без Вас я реально бы не справилась
0
0 / 0 / 0
Регистрация: 01.01.2010
Сообщений: 226
09.08.2010, 17:35
Цитата Сообщение от Nastyusha
Записать();
Провести();
достаточно одного
0
1 / 1 / 0
Регистрация: 24.07.2008
Сообщений: 658
09.08.2010, 17:54
Цитата Сообщение от TimeDontWait
достаточно одного
В некоторых случаях, возможно
В общем случае - нет
0
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
09.08.2010, 18:43
Цитата Сообщение от Hryv
vbs, тут, похоже, намеками не помочь
Просто в большинстве случаев совсем нет необходимости лазать в форму документа,
А 2 объекта одинакового типа - простой механизм для изменения реквизитов
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.08.2010, 18:43
Помогаю со студенческими работами здесь

Выбор реквизита-перечисления на форме документа
Добрый день! Лично я не вижу проблем, но пользователи требуют что-нибудь придумать... В документе есть реквизит-перечисление. ...

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

Получение значения дополнительного реквизита документа
Выручайте, получил задание - сделать отчет по документу Счет по БП 2.0. В отчете должно быть поле Сумма Бонуса, которое получается из суммы...

Значение реквизита документа записать в справочник
Привет.Народ помогите решиь такую задачку. Есть справочник(Номенклатура, с реквизитом наименование и цена) И есть документ(в ТЧ...

Получить в форме документа значение реквизита из справочника
Есть справочник Покупатели с реквизитами - Наименование, Код, Скидка Есть документ Заказы с реквизитами - Клиент (то бишь Покупатель из...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru