Группа: Пользователи
Сообщений: 42
Спасибо сказали: 0 раз
Рейтинг: 0
Доброго дня Шановні користувачі 1С. Маю проблемку і водночас надію на те, що саме тут з Вашою допомогою зможу її позбутися. Суть проблеми полягає у тому, що в мене є документ "Акцизи" при відкритті даного документу мені потрібно аби на екрані користувача, не просто з'являлася форма списку, а вже заповнена форма та сама з якою останній раз працювали і зберегли з усіма внесеними даними та змынами. Я думав, що по номеру "Документ.Акцизи" можна буде "ПриОткрытии()" використати метод "ОткрытьФорму()" але щось нічого не виходить. Плюсуватиму повідомлення які реально несуть в собі корисну інформацію, а не заумні посилання в бібліотеку, дякую за розуміння.
є документ "Акцизи" при відкритті даного документу мені потрібно аби на екрані користувача, не просто з'являлася форма списку, а вже заповнена форма та сама з якою останній раз працювали і зберегли з усіма внесеними даними та змынами
що за форма списку у документі, можливо, ви мали на увазі табличну частину цього документу? Скріншоти документу можна глянути?
Группа: Пользователи
Сообщений: 42
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(mister-x @ 14.06.17, 17:21)
що за форма списку у документі, можливо, ви мали на увазі табличну частину цього документу? Скріншоти документу можна глянути?
ВИБАЧАЮСЬ я дійсно некоректно написав по суті користувачу для роботи надається таблична частина что в Диалоге идентифицируется как Многострочная часть.
ще уточнюючі питання. Опишіть як це має виглядати на практитці. 1. Користувач заходить в 1С 1.1. Відкриває журнал Документів "Акцизи" і вибравши любий документ йому всеодно система повинна підсунути останній, що він редагував? 1.2. В формі журналу бажаєте поставити кнопку "Відрити останній докуент який редагувався"? 13. Ваші варіанти?
Залежно від реалізації можна використати методи НайтиДокумент, НайтиПоНомеру(в межах періоду де номер документу унікальний)
Группа: Пользователи
Сообщений: 42
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(volodya1122 @ 15.06.17, 14:46)
Опишіть як це має виглядати на практитці.
1. Користувач заходить в 1С 1.1 На панелі інструментів тисне на іконку "Акцизи", з'являється форма документу "Новий" для її заповнення (створює первинний документ чи за потреби абсолютно новий, що при натиснені кнопки "Зберегти", на цій формі записується з індивідуальним номером) 1.2 Аби не вводити Акцизи зпочатку а використати останній документ на цій же формі є кнопка "Відрити останні набрані Акцизи" і провести його редагування знову при натисненні кнопки "Зберегти" записати його але вже з наступним індивідуальним номером
виходить що останній номер збереженого документу я можу отримати програмно а ось відкрити по ньому цей документ незнаю як
ДокументАкциз = СоздатьОбъект("Документ.Акциз"); Если ДокументАкциз.НайтиПоНомеру(НомерДляПоиска,ТекущаяДата)=1 Тогда ОткрытьФорму(ДокументАкциз.ТекущийДокумент()); КонецЕсли
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП) 1С Предприятие 8.3: Бух.предприятия 3.0 + самописка ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Кроме высшего образования, нужно иметь хотя бы среднее соображение
Дуже дивна задумка. в майбутньому буде путаниця. мені незрозуміло Кнопка "Відрити останні набрані Акцизи" має відкрити список документів (тобто журнал документів. Чи останній документ? Якщо останній документ то є 2 варіанти 1. Відкрити набраний документ для редагування (тоді при збереженні будуть виправлення в існуючому документі 2. Відкрити новий документ (переглянути в типовій конфігурації процедуру (ПриОткритии(признакКопирования) Обидва методи реалізуються функцією "ОткрытьФорму"
Наприклад повісити цю процедуру на вашу кнопку "Відрити останні набрані Акцизи"
Процедура ОткрДок() Док=СоздатьОбъект("Документ.акциз"); Если Док.НайтиПономеру("0000001038",ТекущаяДата())=1 тогда // ТекущийДок=Док.ТекущийДокумент(); ОткрытьФорму(Док.ТекущийДокумент(),"проба"); КонецЕсли; КонецПроцедуры
А в процедурі ПриОткритии зробити щось типу цього
Процедура ПриОткрытии() тт=Форма.Параметр; Если тт="проба" тогда ДатаДок=ТекущаяДата(); //і інші дії які потрібно зробити Створив =глКористувач; КонецЕсли;
Сообщение отредактировал volodya1122 - 16.06.17, 10:18
1.2 Аби не вводити Акцизи зпочатку а використати останній документ на цій же формі є кнопка "Відрити останні набрані Акцизи" і провести його редагування знову при натисненні кнопки "Зберегти" записати його але вже з наступним індивідуальним номером
а якщо ввести деякий документ-шаблон і його надалі копіювати програмно і вносити нові дані / редагувати існуючі, так не підійде?
я би ще таку опцію розглянув - форму для відкриття нового документу ОткрытьФорму(<ОписательОбъекта>,<КонтекстФормы>,<ДокументОснование>)
Цитата
<КонтекстФормы> - имя переменной, куда можно задать значение любого типа для передачи в открываемую форму.
з останнього документу записати дані у зміну і аналізувати її при відкриті нового документу
Группа: Пользователи
Сообщений: 42
Спасибо сказали: 0 раз
Рейтинг: 0
Шановний "volodya1122 " я скористався Вашим кодом
Процедура ОткрДок() Док=СоздатьОбъект("Документ.акциз"); Если Док.НайтиПономеру("0000001038",ТекущаяДата())=1 тогда // ТекущийДок=Док.ТекущийДокумент(); ОткрытьФорму(Док.ТекущийДокумент(),"проба"); КонецЕсли; КонецПроцедуры
і майже все проканало я про те, що потрібну форму воно мені відкриває і в табличній частині всі останні збереження є але на формі в мене також є "Поле Ввода" яке не заповнюється тими даними які були попередньо туди внесені як з цим бути????????
leo10k10 @ Сегодня, 13:03
, "Поле ввода" - це не реквізит документа!!!! при збереженні документа дані з цого поля вводу не зберігаються. Якщо при штатнаму відкритті документу у вас ці дані збереглись, то вони або програмно вираховуються, або туди записуються дані з іншого реквізиту (перевірити що написано в закладці "Дополнитено" цого поля вводу, або пошук в модулі документу по "Ідентифікатору" цього поля вводу) Ще раз наголошу!!!!!! Вам потрібно відкрити існуючий документ для редагування, чи створити ще один такий самий документ (щоби попередній документ залишився незмінним, а те що відкрилось - зберегти як новий документ)
Сообщение отредактировал volodya1122 - 19.06.17, 15:40
Группа: Пользователи
Сообщений: 42
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(volodya1122 @ 19.06.17, 16:36)
"Поле ввода" - це не реквізит документа!!!! при збереженні документа дані з цого поля вводу не зберігаються.
Точно зробив його реквізитом і все проканало.
Я може вже й достав когось але в мене, ще є проблемка та запитання. На цій формі окрім кнопки "Відрити останні набрані Акцизи" є ще декілька кнопок як зробити так аби вони при натисненні цієї змінювали свій стан тобто ставали неактивними????
Пробував до і після рядка з кодом
ОткрытьФорму(Док.ТекущийДокумент(),"проба")
змінити статус кнопки таким рядком
Форма.КнЗаписати.Доступность(0);
де "КнЗаписати" ідентифікатор кнопки статус якої треба змінити і нажаль не вийшло, що тут порадите?
У вас після цієї дії на в програмі відкрито два документи "акциз". При таких діях кнопки мали стати неактивними в першому документі. щоб стали неативні в другому документі потрібно це прописати в ПриОкритии (з аналізом як я писав вище що документ відкритий не інтерактивно а по "ОкрытьФорму")
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!