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

Автор Тема: Печатная форма распечатать всех сотрудников если не один не выбран.  (Прочитано 6164 раз)

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

Оффлайн Silent_Assassin

  • *
  • Сообщений: 22
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-06-18
  • Сайт: 
  • Профессия: Ученик 1С
Проблема в следующем:
Нужно напечатать справочник Физические лица (вместе с табличной частью).
Условие - если сторудник выбран то печатать его если нет то всех.
Но когда я запускаю конфигкрацию, то у меня уже выбран один из сотрудников (выделяется синим фоном) хотя я не нажимал нечего. Как мене сделать чтобы он подряд печатал?  Всех сотрудников пока я не выберу мышкой нужного?

Процедура Печать(ТабДок, Ссылка) Экспорт
//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
Макет = Справочники.ФизическиеЛица.ПолучитьМакет("Печать");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ФизическиеЛица.ДатаРождения КАК ДатаРождения,
| ФизическиеЛица.Должность КАК Должность,
| ФизическиеЛица.Имя КАК Имя,
| ФизическиеЛица.Код КАК Код,
| ФизическиеЛица.Отчество КАК Отчество,
| ФизическиеЛица.Фамилия КАК Фамилия,
| ФизическиеЛица.МестоРаботы.(
| НомерСтроки,
| НазваниеОрганизации КАК НазваниеОрганизации,
| Должность КАК Должность
| )
|ИЗ
| Справочник.ФизическиеЛица КАК ФизическиеЛица
|ГДЕ
| ФизическиеЛица.Ссылка В(&Ссылка)";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
Шапка = Макет.ПолучитьОбласть("Шапка");
ОбластьМестоРаботыШапка = Макет.ПолучитьОбласть("МестоРаботыШапка");
ОбластьМестоРаботы = Макет.ПолучитьОбласть("МестоРаботы");
ТабДок.Очистить();

ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
Если ВставлятьРазделительСтраниц Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;

ТабДок.Вывести(ОбластьЗаголовок);

Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Шапка, Выборка.Уровень());

ТабДок.Вывести(ОбластьМестоРаботыШапка);
ВыборкаМестоРаботы = Выборка.МестоРаботы.Выбрать();
Пока ВыборкаМестоРаботы.Следующий() Цикл
ОбластьМестоРаботы.Параметры.Заполнить(ВыборкаМестоРаботы);
ТабДок.Вывести(ОбластьМестоРаботы, ВыборкаМестоРаботы.Уровень());
КонецЦикла;

ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
//}}
КонецПроцедуры


Оффлайн GRADUS

  • *****
  • Сообщений: 699
  • РЕПУТАЦИЯ: 51
  • КПД: 7%
  • Регистрация: 2013-06-08
  • Сайт: 
  • Профессия: Программист 1С

Оффлайн Silent_Assassin

  • *
  • Сообщений: 22
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-06-18
  • Сайт: 
  • Профессия: Ученик 1С
Запустить печать в цикле? :bleh:
По идее да но до того момента как не выберешь конкретного сотрудника.

Оффлайн GRADUS

  • *****
  • Сообщений: 699
  • РЕПУТАЦИЯ: 51
  • КПД: 7%
  • Регистрация: 2013-06-08
  • Сайт: 
  • Профессия: Программист 1С
Запустить печать в цикле? :bleh:
По идее да но до того момента как не выберешь конкретного сотрудника.

Я бы сделал галочку, типа "Выбрать всех". Интуитивно не будет понятно клиенту - "надо никуда не жать, тогда все будет"......

Оффлайн Besart

  • *****
  • Сообщений: 678
  • РЕПУТАЦИЯ: 142
  • КПД: 21%
  • Регистрация: 2012-12-10
    • Skype: artfa.a
  • Компания: Фрилансер
  • Профессия: Программист 8.1
я бы сделал так: в процедуре вызывающей печать вставил бы вопрос "Печатать всех сотрудников или только выделенного?", результат ответа приводил бы к какой нибудь переменной, например Истина, и передавал бы этй переменную в экспортную процедуру Печать, где поставил бы условие
Если МояПермеменная = Истина Тогда 
СтрЗаменить(Запрос.Текст, "ГДЕ ФизическиеЛица.Ссылка В(&Ссылка)", "");
КонецЕсли

Оффлайн Silent_Assassin

  • *
  • Сообщений: 22
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-06-18
  • Сайт: 
  • Профессия: Ученик 1С
я бы сделал так: в процедуре вызывающей печать вставил бы вопрос "Печатать всех сотрудников или только выделенного?", результат ответа приводил бы к какой нибудь переменной, например Истина, и передавал бы этй переменную в экспортную процедуру Печать, где поставил бы условие
Если МояПермеменная = Истина Тогда 
СтрЗаменить(Запрос.Текст, "ГДЕ ФизическиеЛица.Ссылка В(&Ссылка)", "");
КонецЕсли
Не врублю где это в моем коде вставлять?

Оффлайн Besart

  • *****
  • Сообщений: 678
  • РЕПУТАЦИЯ: 142
  • КПД: 21%
  • Регистрация: 2012-12-10
    • Skype: artfa.a
  • Компания: Фрилансер
  • Профессия: Программист 8.1
Не врублю где это в моем коде вставлять?
[/quote]
этот код вставляете в процедуру где находится кнопка Печать
	Режим = РежимДиалогаВопрос.ДаНет;
Ответ = Вопрос("Печатать всех сотрудников или только выбранного?", Режим);
Если Ответ = КодВозвратаДиалога.Да Тогда
П = Истина;
Иначе
П = Ложь;
КонецЕсли;

Печать(ТабДок, Ссылка, П);//Экспортная Процедура

а в Экспортной процедуре Печать дополняете код чтобы он выгляедел так
Процедура Печать(ТабДок, Ссылка, П) Экспорт
//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
Макет = Справочники.ФизическиеЛица.ПолучитьМакет("Печать");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    ФизическиеЛица.ДатаРождения КАК ДатаРождения,
|    ФизическиеЛица.Должность КАК Должность,
|    ФизическиеЛица.Имя КАК Имя,
|    ФизическиеЛица.Код КАК Код,
|    ФизическиеЛица.Отчество КАК Отчество,
|    ФизическиеЛица.Фамилия КАК Фамилия,
|    ФизическиеЛица.МестоРаботы.(
|        НомерСтроки,
|        НазваниеОрганизации КАК НазваниеОрганизации,
|        Должность КАК Должность
|    )
|ИЗ
|    Справочник.ФизическиеЛица КАК ФизическиеЛица
|ГДЕ
|    ФизическиеЛица.Ссылка В(&Ссылка)";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
                Если П = Истина Тогда //Вот это дополнение
СтрЗаменить(Запрос.Текст, "ГДЕ ФизическиеЛица.Ссылка В(&Ссылка)", "");
КонецЕсли
Выборка = Запрос.Выполнить().Выбрать();



ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
Шапка = Макет.ПолучитьОбласть("Шапка");
ОбластьМестоРаботыШапка = Макет.ПолучитьОбласть("МестоРаботыШапка");
ОбластьМестоРаботы = Макет.ПолучитьОбласть("МестоРаботы");
ТабДок.Очистить();

ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
Если ВставлятьРазделительСтраниц Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;

ТабДок.Вывести(ОбластьЗаголовок);

Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Шапка, Выборка.Уровень());

ТабДок.Вывести(ОбластьМестоРаботыШапка);
ВыборкаМестоРаботы = Выборка.МестоРаботы.Выбрать();
Пока ВыборкаМестоРаботы.Следующий() Цикл
ОбластьМестоРаботы.Параметры.Заполнить(ВыборкаМестоРаботы);
ТабДок.Вывести(ОбластьМестоРаботы, ВыборкаМестоРаботы.Уровень());
КонецЦикла;

ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
//}}
КонецПроцедуры

Оффлайн Silent_Assassin

  • *
  • Сообщений: 22
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-06-18
  • Сайт: 
  • Профессия: Ученик 1С
Пишет
Справочник.ФизическиеЛица.МодульМенеджера(27,24)}: Встроенная функция может быть использована только в выражении. (СтрЗаменить)
            СтрЗаменить<<?>>(Запрос.Текст, "ГДЕ ФизическиеЛица.Ссылка В(&Ссылка)", "");  (Проверка: Сервер)
{Справочник.ФизическиеЛица.МодульМенеджера(28,18)}: Ожидается символ ';'
        КонецЕсли<<?>> (Проверка: Сервер)

Оффлайн Besart

  • *****
  • Сообщений: 678
  • РЕПУТАЦИЯ: 142
  • КПД: 21%
  • Регистрация: 2012-12-10
    • Skype: artfa.a
  • Компания: Фрилансер
  • Профессия: Программист 8.1
Тогда попробуйте так
    Режим = РежимДиалогаВопрос.ДаНет;
    Ответ = Вопрос("Печатать всех сотрудников или только выбранного?", Режим);
    Если Ответ = КодВозвратаДиалога.Да Тогда
        П = "ГДЕ ФизическиеЛица.Ссылка В(&Ссылка)";
    Иначе
        П = "";
    КонецЕсли;
   
    Печать(ТабДок, Ссылка, П);//Экспортная Процедура
Процедура Печать(ТабДок, Ссылка, П) Экспорт
//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
Макет = Справочники.ФизическиеЛица.ПолучитьМакет("Печать");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    ФизическиеЛица.ДатаРождения КАК ДатаРождения,
|    ФизическиеЛица.Должность КАК Должность,
|    ФизическиеЛица.Имя КАК Имя,
|    ФизическиеЛица.Код КАК Код,
|    ФизическиеЛица.Отчество КАК Отчество,
|    ФизическиеЛица.Фамилия КАК Фамилия,
|    ФизическиеЛица.МестоРаботы.(
|        НомерСтроки,
|        НазваниеОрганизации КАК НазваниеОрганизации,
|        Должность КАК Должность
|    )
|ИЗ
|    Справочник.ФизическиеЛица КАК ФизическиеЛица
|"+П+"";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();



ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
Шапка = Макет.ПолучитьОбласть("Шапка");
ОбластьМестоРаботыШапка = Макет.ПолучитьОбласть("МестоРаботыШапка");
ОбластьМестоРаботы = Макет.ПолучитьОбласть("МестоРаботы");
ТабДок.Очистить();

ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
Если ВставлятьРазделительСтраниц Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;

ТабДок.Вывести(ОбластьЗаголовок);

Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Шапка, Выборка.Уровень());

ТабДок.Вывести(ОбластьМестоРаботыШапка);
ВыборкаМестоРаботы = Выборка.МестоРаботы.Выбрать();
Пока ВыборкаМестоРаботы.Следующий() Цикл
ОбластьМестоРаботы.Параметры.Заполнить(ВыборкаМестоРаботы);
ТабДок.Вывести(ОбластьМестоРаботы, ВыборкаМестоРаботы.Уровень());
КонецЦикла;

ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
//}}
КонецПроцедуры


извеняюсь, мой косяк, можно было оставить первый вариант, только изменив одну строку
Запрос.Текст = СтрЗаменить(Запрос.Текст, "ГДЕ ФизическиеЛица.Ссылка В(&Ссылка)", ""); 
глаз замылился :xfbnsdfb:

Оффлайн Silent_Assassin

  • *
  • Сообщений: 22
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-06-18
  • Сайт: 
  • Профессия: Ученик 1С
Тогда попробуйте так
    Режим = РежимДиалогаВопрос.ДаНет;
    Ответ = Вопрос("Печатать всех сотрудников или только выбранного?", Режим);
    Если Ответ = КодВозвратаДиалога.Да Тогда
        П = "ГДЕ ФизическиеЛица.Ссылка В(&Ссылка)";
    Иначе
        П = "";
    КонецЕсли;
   
    Печать(ТабДок, Ссылка, П);//Экспортная Процедура
Процедура Печать(ТабДок, Ссылка, П) Экспорт
//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
Макет = Справочники.ФизическиеЛица.ПолучитьМакет("Печать");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    ФизическиеЛица.ДатаРождения КАК ДатаРождения,
|    ФизическиеЛица.Должность КАК Должность,
|    ФизическиеЛица.Имя КАК Имя,
|    ФизическиеЛица.Код КАК Код,
|    ФизическиеЛица.Отчество КАК Отчество,
|    ФизическиеЛица.Фамилия КАК Фамилия,
|    ФизическиеЛица.МестоРаботы.(
|        НомерСтроки,
|        НазваниеОрганизации КАК НазваниеОрганизации,
|        Должность КАК Должность
|    )
|ИЗ
|    Справочник.ФизическиеЛица КАК ФизическиеЛица
|"+П+"";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();



ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
Шапка = Макет.ПолучитьОбласть("Шапка");
ОбластьМестоРаботыШапка = Макет.ПолучитьОбласть("МестоРаботыШапка");
ОбластьМестоРаботы = Макет.ПолучитьОбласть("МестоРаботы");
ТабДок.Очистить();

ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
Если ВставлятьРазделительСтраниц Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;

ТабДок.Вывести(ОбластьЗаголовок);

Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Шапка, Выборка.Уровень());

ТабДок.Вывести(ОбластьМестоРаботыШапка);
ВыборкаМестоРаботы = Выборка.МестоРаботы.Выбрать();
Пока ВыборкаМестоРаботы.Следующий() Цикл
ОбластьМестоРаботы.Параметры.Заполнить(ВыборкаМестоРаботы);
ТабДок.Вывести(ОбластьМестоРаботы, ВыборкаМестоРаботы.Уровень());
КонецЦикла;

ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
//}}
КонецПроцедуры


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


Теги:
 

Форма "Взнос наличными в банк" где она :)

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

Ответов: 5
Просмотров: 4674
Последний ответ 30 Июн 2015, 03:50
от lefantiy_94
Вопрос по УНФ (форма "Задание на работу")

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

Ответов: 2
Просмотров: 350
Последний ответ 22 Июн 2017, 18:22
от tantony
Как программно вызывать обработчик ПриИзменении поля табличной части после того, как форма была заполнена программно?

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

Ответов: 6
Просмотров: 4385
Последний ответ 27 Июл 2015, 06:21
от cska-fanat-kz
Для объекта не определена форма по умолчанию, соответствующая текущему режиму запуска. Объект: "Консоль Запросов"

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

Ответов: 14
Просмотров: 6410
Последний ответ 20 Июл 2016, 22:56
от Азамат Хубиев
Шаблон или Форма для заполнения "заказа покупателя"

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

Ответов: 5
Просмотров: 6614
Последний ответ 02 Сен 2013, 14:22
от LordWizard

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
133 Сообщений
ilyay ilyay
63 Сообщений
AIFrame
61 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
41 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
27 Сообщений
alexandr_ll
23 Сообщений

* Кто онлайн

  • Точка Гостей: 208
  • Точка Скрытых: 0
  • Точка Пользователей: 7
  • Точка Сейчас на форуме:

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal