Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Чи можливо за номером документу відкрити його візуальну форму          
leo10k10 Подменю пользователя
сообщение 14.06.17, 14:52
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 42
Спасибо сказали: 0 раз
Рейтинг: 0

Доброго дня Шановні користувачі 1С.
Маю проблемку і водночас надію на те, що саме тут з Вашою допомогою зможу її позбутися.
Суть проблеми полягає у тому, що в мене є документ "Акцизи" при відкритті даного документу мені потрібно аби на екрані користувача, не просто з'являлася форма списку, а вже заповнена форма та сама з якою останній раз працювали і зберегли з усіма внесеними даними та змынами. Я думав, що по номеру "Документ.Акцизи" можна буде "ПриОткрытии()" використати метод "ОткрытьФорму()" але щось нічого не виходить. Плюсуватиму повідомлення які реально несуть в собі корисну інформацію, а не заумні посилання в бібліотеку, дякую за розуміння.

mister-x Подменю пользователя
сообщение 14.06.17, 16:21
Сообщение #2

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1417 раз
Рейтинг: 0

Цитата(leo10k10 @ 14.06.17, 14:52) *
є документ "Акцизи" при відкритті даного документу мені потрібно аби на екрані користувача, не просто з'являлася форма списку, а вже заповнена форма та сама з якою останній раз працювали і зберегли з усіма внесеними даними та змынами

що за форма списку у документі, можливо, ви мали на увазі табличну частину цього документу? Скріншоти документу можна глянути?

leo10k10 Подменю пользователя
сообщение 14.06.17, 16:46
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 42
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(mister-x @ 14.06.17, 17:21) *
що за форма списку у документі, можливо, ви мали на увазі табличну частину цього документу? Скріншоти документу можна глянути?

ВИБАЧАЮСЬ я дійсно некоректно написав по суті користувачу для роботи надається таблична частина что в Диалоге идентифицируется как Многострочная часть.

mister-x Подменю пользователя
сообщение 14.06.17, 17:06
Сообщение #4

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1417 раз
Рейтинг: 0

ви документ хочете відкрити із іншого об'єкту (для прикладу довідник, не із журналу документів) програмно наскільки я зрозумів?

документ "Акциз" вже записаний?

volodya1122 Подменю пользователя
сообщение 15.06.17, 13:46
Сообщение #5

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

ще уточнюючі питання.
Опишіть як це має виглядати на практитці.
1. Користувач заходить в 1С
1.1. Відкриває журнал Документів "Акцизи" і вибравши любий документ йому всеодно система повинна підсунути останній, що він редагував?
1.2. В формі журналу бажаєте поставити кнопку "Відрити останній докуент який редагувався"?
13. Ваші варіанти?

Залежно від реалізації можна використати методи НайтиДокумент, НайтиПоНомеру(в межах періоду де номер документу унікальний)

leo10k10 Подменю пользователя
сообщение 15.06.17, 23:00
Сообщение #6

Общительный
**
Группа: Пользователи
Сообщений: 42
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(volodya1122 @ 15.06.17, 14:46) *
Опишіть як це має виглядати на практитці.

1. Користувач заходить в 1С
1.1 На панелі інструментів тисне на іконку "Акцизи", з'являється форма документу "Новий" для її заповнення (створює первинний документ чи за потреби абсолютно новий, що при натиснені кнопки "Зберегти", на цій формі записується з індивідуальним номером)
1.2 Аби не вводити Акцизи зпочатку а використати останній документ на цій же формі є кнопка "Відрити останні набрані Акцизи" і провести його редагування знову при натисненні кнопки "Зберегти" записати його але вже з наступним індивідуальним номером

виходить що останній номер збереженого документу я можу отримати програмно а ось відкрити по ньому цей документ незнаю як

nysysimara Подменю пользователя
сообщение 16.06.17, 10:09
Сообщение #7

Оратор
Иконка группы
Группа: Местный
Сообщений: 312
Из: Бердянск
Спасибо сказали: 110 раз
Рейтинг: 0

если у вас в коде присутствует фраза
ЧтоТо.Записать();

то должен сработать метод
ОткрытьФорму(ЧтоТо.ТекущийДокумент());


или
ДокументАкциз = СоздатьОбъект("Документ.Акциз");
Если ДокументАкциз.НайтиПоНомеру(НомерДляПоиска,ТекущаяДата)=1 Тогда
    ОткрытьФорму(ДокументАкциз.ТекущийДокумент());
КонецЕсли


Signature
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП)
1С Предприятие 8.3: Бух.предприятия 3.0 + самописка
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Кроме высшего образования, нужно иметь хотя бы среднее соображение

Спасибо сказали: leo10k10,

volodya1122 Подменю пользователя
сообщение 16.06.17, 10:16
Сообщение #8

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

leo10k10 @ Сегодня, 0:00 * ,

Дуже дивна задумка. в майбутньому буде путаниця.
мені незрозуміло Кнопка "Відрити останні набрані Акцизи" має відкрити список документів (тобто журнал документів. Чи останній документ?
Якщо останній документ то є 2 варіанти
1. Відкрити набраний документ для редагування (тоді при збереженні будуть виправлення в існуючому документі
2. Відкрити новий документ (переглянути в типовій конфігурації процедуру (ПриОткритии(признакКопирования)
Обидва методи реалізуються функцією "ОткрытьФорму"

Наприклад повісити цю процедуру на вашу кнопку "Відрити останні набрані Акцизи"
  Процедура ОткрДок()
      Док=СоздатьОбъект("Документ.акциз");
      Если Док.НайтиПономеру("0000001038",ТекущаяДата())=1 тогда
  //    ТекущийДок=Док.ТекущийДокумент();
      ОткрытьФорму(Док.ТекущийДокумент(),"проба");
      КонецЕсли;
  КонецПроцедуры

А в процедурі ПриОткритии зробити щось типу цього
Процедура ПриОткрытии()    
    тт=Форма.Параметр;
    Если тт="проба" тогда
    ДатаДок=ТекущаяДата();    //і інші дії які потрібно зробити
    Створив      =глКористувач;
    КонецЕсли;


Сообщение отредактировал volodya1122 - 16.06.17, 10:18

Спасибо сказали: leo10k10,

volodya1122 Подменю пользователя
сообщение 16.06.17, 11:18
Сообщение #9

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

ще додам до вищесказаного.
для другого варіанту потрібно виправити код:
ОткрытьФорму("Документ.акциз","проба",Док1.ТекущийДокумент());

і аналізувати (тобто копіювати дані з попереднього документу) в процедурі
Процедура ВводНаОсновании(Док) 
ДатаДок=ТекущаяДата();    
Контрагент=Док.Контрагент;




Спасибо сказали: leo10k10,

mister-x Подменю пользователя
сообщение 16.06.17, 12:23
Сообщение #10

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1417 раз
Рейтинг: 0

Цитата(leo10k10 @ 15.06.17, 23:00) *
1.2 Аби не вводити Акцизи зпочатку а використати останній документ на цій же формі є кнопка "Відрити останні набрані Акцизи" і провести його редагування знову при натисненні кнопки "Зберегти" записати його але вже з наступним індивідуальним номером

а якщо ввести деякий документ-шаблон і його надалі копіювати програмно і вносити нові дані / редагувати існуючі, так не підійде?

я би ще таку опцію розглянув - форму для відкриття нового документу
ОткрытьФорму(<ОписательОбъекта>,<КонтекстФормы>,<ДокументОснование>)

Цитата
<КонтекстФормы> - имя переменной, куда можно задать значение любого типа для передачи в открываемую форму.

з останнього документу записати дані у зміну і аналізувати її при відкриті нового документу

Спасибо сказали: leo10k10,

mister-x Подменю пользователя
сообщение 16.06.17, 13:45
Сообщение #11

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1417 раз
Рейтинг: 0

Цитата(mister-x @ 16.06.17, 12:23) *
зміну

всет-таки "змінну", а то із одним "н" зміст зовсім інший smile.gif

leo10k10 Подменю пользователя
сообщение 16.06.17, 14:56
Сообщение #12

Общительный
**
Группа: Пользователи
Сообщений: 42
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(mister-x @ 16.06.17, 13:23) *
я би ще таку опцію розглянув - форму для відкриття нового документу
ОткрытьФорму(<ОписательОбъекта>,<КонтекстФормы>,<ДокументОснование>)

дякую за думку але я щось недогнав цей варіант плюсую Вам за те що не залишились осторонь цього питання

leo10k10 Подменю пользователя
сообщение 19.06.17, 12:03
Сообщение #13

Общительный
**
Группа: Пользователи
Сообщений: 42
Спасибо сказали: 0 раз
Рейтинг: 0

Шановний "volodya1122 " я скористався Вашим кодом
  Процедура ОткрДок()
      Док=СоздатьОбъект("Документ.акциз");
      Если Док.НайтиПономеру("0000001038",ТекущаяДата())=1 тогда
  //    ТекущийДок=Док.ТекущийДокумент();
      ОткрытьФорму(Док.ТекущийДокумент(),"проба");
      КонецЕсли;
  КонецПроцедуры

і майже все проканало я про те, що потрібну форму воно мені відкриває і в табличній частині всі останні збереження є але на формі в мене також є "Поле Ввода" яке не заповнюється тими даними які були попередньо туди внесені як з цим бути????????

volodya1122 Подменю пользователя
сообщение 19.06.17, 15:36
Сообщение #14

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

leo10k10 @ Сегодня, 13:03 * ,
"Поле ввода" - це не реквізит документа!!!! при збереженні документа дані з цого поля вводу не зберігаються.
Якщо при штатнаму відкритті документу у вас ці дані збереглись, то вони або програмно вираховуються, або туди записуються дані з іншого реквізиту (перевірити що написано в закладці "Дополнитено" цого поля вводу, або пошук в модулі документу по "Ідентифікатору" цього поля вводу)
Ще раз наголошу!!!!!! Вам потрібно відкрити існуючий документ для редагування, чи створити ще один такий самий документ (щоби попередній документ залишився незмінним, а те що відкрилось - зберегти як новий документ)

Сообщение отредактировал volodya1122 - 19.06.17, 15:40

Спасибо сказали: leo10k10,

leo10k10 Подменю пользователя
сообщение 19.06.17, 23:07
Сообщение #15

Общительный
**
Группа: Пользователи
Сообщений: 42
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(volodya1122 @ 19.06.17, 16:36) *
"Поле ввода" - це не реквізит документа!!!! при збереженні документа дані з цого поля вводу не зберігаються.

Точно зробив його реквізитом і все проканало.

Я може вже й достав когось але в мене, ще є проблемка та запитання.
На цій формі окрім кнопки "Відрити останні набрані Акцизи" є ще декілька кнопок як зробити так аби вони при натисненні цієї змінювали свій стан тобто ставали неактивними????

Пробував до і після рядка з кодом
    ОткрытьФорму(Док.ТекущийДокумент(),"проба")


змінити статус кнопки таким рядком
    Форма.КнЗаписати.Доступность(0);

де "КнЗаписати" ідентифікатор кнопки статус якої треба змінити
і нажаль не вийшло, що тут порадите?


volodya1122 Подменю пользователя
сообщение 20.06.17, 9:33
Сообщение #16

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

Цитата(leo10k10 @ 20.06.17, 0:07) *
Пробував до і після рядка з кодом

ОткрытьФорму(Док.ТекущийДокумент(),"проба")



змінити статус кнопки таким рядком

Форма.КнЗаписати.Доступность(0);



У вас після цієї дії на в програмі відкрито два документи "акциз". При таких діях кнопки мали стати неактивними в першому документі.
щоб стали неативні в другому документі потрібно це прописати в ПриОкритии (з аналізом як я писав вище що документ відкритий не інтерактивно а по "ОкрытьФорму")

Спасибо сказали: leo10k10,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 21:17
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!