Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
01 окт 2024, 00:30

Расход\Приход 8.0

Автор warshadow, 24 фев 2011, 19:42

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

warshadow

Так разобрался...
Форма - вставить элемент управления- панель
, а потом уже копируем табличную часть по страницам.
Это правильно?
Визуально добавить )

Klyacksa

Визуально - да, все интуитивно просто.
Вставили панель, потом правой кнопкой мыши по панели -> Добавить страницу

Каждой странице можно имя задать и заголовок в свойствах
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Klyacksa

А почему, кстати
ЦитироватьФорма - вставить элемент управления- панель
?

Можно же сделать, чтобы кнопочки внизу были под каждый элемент управления.
Для этого клацаем правой кнопкой на свободном месте панели управления в конфигураторе (например, правее "Справки"), выбираем "Настройки", Ставим флажок "Элементы управления".

А потом в панели внизу добавляем/удаляем необходимые кнопочки.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

warshadow

Спасибо, все получилось !))
На сегодняшней момент я добавил второй регистр накопления, собственно для этого и спрашивал как добавить панель ))
Начал делать проверку на реквизиты и табличные части...получается такая история,  если 1 страница обзовем ее "Издательство" не заполнена, но она нам не нужна, а 2 страница обзовем ее "ДарыЧитателей" полностью заполнена и готов к проводке, то естественно документ не поведется, т.к. проверяет 1 страницу, какая функция отвечает за "активность" что-ли страницы, например если мне нужна эта страница только ее контролировал, если нет, то ругался?

Klyacksa

Гм...
Чтобы скрыть страницу:
ЭлементыФормы.Панель1.Страницы.Издательство.Видимость=Ложь
или можно просто ее доступность убирать:
ЭлементыФормы.Панель1.Страницы.Издательство.Доступность=Ложь

Ну в коде так и делаете конструкцию:
Если <<проверка - если нам нужна страница Издательство>> тогда
            <<выполняем действия по проведению/записи/видимости/Доступности/проверке этой страницы>>
КонецЕсли;


И так же со второй страницей.

xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

warshadow

Сейчас попробую, т.к вы меня научили работать с запросами, у меня появилось два регистра.. я подумал, например если придет от издательства 1 книга - Война и Мир, и от ДаровЧитателей 2 книги - тоже Война и Мир, т.к у меня в разных регистрах регистрируется книги, я сделал связи по 2 регистрам.., вот получился такой запрос, с таким условием:

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

            
      );
Запрос.УстановитьПараметр("Ссылка",Ссылка);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
         
      
                              
Пока Выборка.Следующий() Цикл
                                     
Если Выборка.КоличествоПоДокументу > Выборка.КоличествоНаСкладе Тогда
            Сообщить("Невозможно реализовать книгу "+""""+Выборка.НаименованиеКниги+"""");
            Отказ= Истина;
КонецЕсли;
            
Если Выборка.КоличествоПоДокументу > Выборка.КоличествоДары  Тогда
             Сообщить("Невозможно реализовать книгу "+""""+Выборка.НаименованиеКниги+"""");
                                 Отказ= Истина;
КонецЕсли;
....
Сгруппировал вашем методом, но он дает суммы общей книг, а мне бы хотелось получить сумму с Издательства -1 книг(пришла) + сумма ДарыЧитателей -2 книг(пришли).
Другая группировка уже нужна, что суммировал количество с 1 Регистра и со 2 Регистра?

cska-fanat-kz

Что понимается под "нужна":
- проверка заполнения не требуется?
- строки ТЧ не участвуют в проведении?

Сперва сами определитесь - что вам нужно (проверять, проводить), а потом по следующей схеме:
1. Проверка заполнения ТЧ
2. Запрос к ТЧ с присоединением остатков
3. Перебор строк ТЧ и формирование движений

пункты 1-3 повторить для каждой нужной ТЧ.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Klyacksa

Нет, другая группировка не нужна.
Просто вместо двух полей КоличествоОстаток нужно вывести сумму:
ЕСТЬNULL(ПоступлениеРеализацияСписаниеКнигДарыЧитателейОстатки.КоличествоОстаток,0) +
  ЕСТЬNULL(ПоступлениеРеализацияСписаниеКнигОстатки.КоличествоОстаток,0) КАК КоличествоНаСкладе


А теперь главный вопрос - зачем Вам два регистра? Чтобы регистрировать одинаковые данные, только от разных издательств? А если издательств будет 10 - тоже 10 регистров будете создавать? И каждый раз конфигурацию менять и переписывать все запросы и выборки?

Нужно сделать справочник "Издательства" и в первый регистр добавить измерение "Издательство" (тип СправочникСсылка.Издательство). И записывать данные туда в разрезе издательства (при проведении документов, заполнять поле "Издательство" нужным значением).

Тогда из регистра можно будет выбрать как общие итоги по определенной книге, так и итоги по книге от определенного издательства.

Но тогда встает другой вопрос: если от Издательство1 есть 3 книги, от Издательства2 есть 5 книг. Заказ на 6 книг. Как будем списывать? Продадим все от Издательства1 и 3 от Издательства2? Или все от Издательства2 и 1 от Издательства1? Ну и плюс, конечно, цены (если есть) - они же скорее всего у каждого издательства свои. В принципе, можно в таком случае списывать в начале то, что пришло первым. Партионный учет получается :)
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

cska-fanat-kz

Для движения "Поступление" зачем городить запрос?

Вам же при поступлении остаток не надо контролировать!

Используйте ваш любимый цикл для каждого и перебирайте себе ТЧ на здоровье.

Сперва одну потом другую...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

warshadow

Нет, у меня один справочник издательство, а другой справочник ДарыЧитателей, в них разные измерения.
Поэтому и 2 регистра накопления.

Теги:
Рейтинг@Mail.ru

Поиск