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

Хранилище

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

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



> Получить ключ субконто          
Agapov_Stas Подменю пользователя
сообщение 23.02.12, 12:46
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 217
Из: Днепропетровск
Спасибо сказали: 18 раз
Рейтинг: 0

Конфигурация "Бухгалтерский учет для Украины" Ред 1.2
Есть запрос - срез остатков на дату Стандартный запрос по Организации и Счету
Для того чтоб занести из результатов запроса в проводку - необходимо знать ключ Субконто

Запрос = Новый Запрос; 
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ХозрасчетныйОстатки.Счет КАК СчетДТ,
    |    ХозрасчетныйОстатки.Счет КАК СчетКТ,
    |    ХозрасчетныйОстатки.Субконто1 КАК СубконтоДт1,
    |    ХозрасчетныйОстатки.Субконто2 КАК СубконтоДт2,
    |    ХозрасчетныйОстатки.Субконто3 КАК СубконтоДт3,
    |    ХозрасчетныйОстатки.Организация,
    |    ХозрасчетныйОстатки.Валюта КАК ВалютаДТ,
    |    ХозрасчетныйОстатки.Валюта КАК ВалютаКТ,
    |    ХозрасчетныйОстатки.НалоговоеНазначение КАК НалоговоеНазначениеДТ,
    |    ХозрасчетныйОстатки.НалоговоеНазначение КАК НалоговоеНазначениеКТ,
    |    ХозрасчетныйОстатки.СуммаОстаток КАК СУММА,
    |    ХозрасчетныйОстатки.СуммаОстатокДт КАК СуммаОстатокДТ,
    |    ХозрасчетныйОстатки.СуммаОстатокКт КАК СуммаОстатокКТ,
    |    ХозрасчетныйОстатки.СуммаРазвернутыйОстатокДт,
    |    ХозрасчетныйОстатки.СуммаРазвернутыйОстатокКт,
    |    ХозрасчетныйОстатки.ВалютнаяСуммаОстаток КАК ВалютнаяСуммаДт,
    |    ХозрасчетныйОстатки.ВалютнаяСуммаОстаток КАК ВалютнаяСуммаКТ,
    |    ХозрасчетныйОстатки.ВалютнаяСуммаОстатокДт,
    |    ХозрасчетныйОстатки.ВалютнаяСуммаОстатокКт,
    |    ХозрасчетныйОстатки.ВалютнаяСуммаРазвернутыйОстатокДт,
    |    ХозрасчетныйОстатки.ВалютнаяСуммаРазвернутыйОстатокКт,
    |    ХозрасчетныйОстатки.КоличествоОстаток,
    |    ХозрасчетныйОстатки.КоличествоОстатокДт КАК КоличествоДТ,
    |    ХозрасчетныйОстатки.КоличествоОстатокКт КАК КоличествоКТ,
    |    ХозрасчетныйОстатки.КоличествоРазвернутыйОстатокДт,
    |    ХозрасчетныйОстатки.КоличествоРазвернутыйОстатокКт,
    |    ХозрасчетныйОстатки.СуммаНУОстаток,
    |    ХозрасчетныйОстатки.СуммаНУОстатокДт КАК СуммаНУДТ,
    |    ХозрасчетныйОстатки.СуммаНУОстатокКт КАК СуммаНУКТ,
    |    ХозрасчетныйОстатки.СуммаНУРазвернутыйОстатокДт,
    |    ХозрасчетныйОстатки.СуммаНУРазвернутыйОстатокКт,
    |ИЗ
    |    РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет = &Счет, , ) КАК ХозрасчетныйОстатки
    |ГДЕ
    |    ХозрасчетныйОстатки.Организация = &Организация";
    Запрос.УстановитьПараметр("Организация", Организация);
    ЗАпрос.УстановитьПараметр("Счет", Счет);
    ЗАпрос.УстановитьПараметр("Дата", Дата);
    Результат = Запрос.Выполнить().Выгрузить();

Потом
Для Каждого СТР ИЗ Результат Цикл 
    Движение = ЭлементыФормы.ТабличноеПолеДвиженияБУ.Значение.Добавить();
                
    Ключ = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения;
    
    Движение.СубконтоДТ[Ключ] = Стр.СубконтоДТ1;
    
КонецЦикла;

Вопрос - Как получить КЛЮЧ универсально ?
Так как счет по которому будет делаться срез разный.

MATEVI Подменю пользователя
сообщение 23.02.12, 13:47
Сообщение #2

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 958 раз
Рейтинг: 0

Движение = ЭлементыФормы.ТабличноеПолеДвиженияБУ.Значение.Добавить(); 
Движение .СчетДт      = СтрокаТаблицы.СчетДТ;
БухгалтерскийУчет.УстановитьСубконто(Движение .СчетДт,Движение.СубконтоДт1,0, СТР.СубконтоДт1 ,Истина, Заголовок);

Думаю так. Возможно напутал с Вашими переменными. Вообщем смотрите БухгалтерскийУчет.УстановитьСубконто(

Agapov_Stas Подменю пользователя
сообщение 23.02.12, 14:00
Сообщение #3

Завсегдатай
****
Группа: Пользователи
Сообщений: 217
Из: Днепропетровск
Спасибо сказали: 18 раз
Рейтинг: 0

заполняю данные в Таблицу РегистрБухгалтерииНаборЗаписей.Хозрасчетный! не формирую проводки еще
в Данной таблице Колонка СубконтоДТ имеет тип "ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные"
Соответственно чтоб установить туда значение нужно знать какой вид субконто.
В результате запроса возвращается значение уже субконто - получить тип - Возвращается значение Справочник такой то или документ такой то НО не
к примеру ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура
Чтоб установить СубконтоДТ
Ключ = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения; 
    
Движение.СубконтоДТ[Ключ] = Стр.СубконтоДТ1;


Значение Стр.СубконтоДТ1
ТИП = СправочникСсылка.ПодразделенияОрганизации
Значение = Ссылка на подразделение
Соответственно записывать его я должен в

Движение.СубконтоДТ[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения] = Стр.СубконтоДТ1;


Но загвоздка в том что счет выбирается руками и может быть любой
соответственно субконто постоянно разные
Жестко прописать не получиться

Как из Стр.СубконтоДТ1 Получить ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения ?

MATEVI Подменю пользователя
сообщение 23.02.12, 14:20
Сообщение #4

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 958 раз
Рейтинг: 0

А почему не сделать просто
ЭлементыФормы.ТабличноеПолеДвиженияБУ.Значение = Результат;
ЭлементыФормы.ТабличноеПолеДвиженияБУ.СоздатьКолонки();

И получите готовую таблицу значений.

Сообщение отредактировал MATEVI - 23.02.12, 14:20

Agapov_Stas Подменю пользователя
сообщение 23.02.12, 14:28
Сообщение #5

Завсегдатай
****
Группа: Пользователи
Сообщений: 217
Из: Днепропетровск
Спасибо сказали: 18 раз
Рейтинг: 0

Цитата(MATEVI @ 23.02.12, 14:20) *
А почему не сделать просто
ЭлементыФормы.ТабличноеПолеДвиженияБУ.Значение = Результат;
ЭлементыФормы.ТабличноеПолеДвиженияБУ.СоздатьКолонки();

И получите готовую таблицу значений.

Потому что гружу в табличную часть РегистрБухгалтерииНаборЗаписей.Хозрасчетный
на основании него буду делать проводки
и необходимо знать тип
Делаю примерно как документ "Корректировка записей регистра" - это документ сторнирования
Делаю документ который будет обнулять минусовые остатки на выбранную дату поэтому такая табличная часть

MATEVI Подменю пользователя
сообщение 23.02.12, 15:17
Сообщение #6

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 958 раз
Рейтинг: 0

bn.gif



Сообщение отредактировал MATEVI - 23.02.12, 15:18

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

Agapov_Stas Подменю пользователя
сообщение 23.02.12, 19:39
Сообщение #7

Завсегдатай
****
Группа: Пользователи
Сообщений: 217
Из: Днепропетровск
Спасибо сказали: 18 раз
Рейтинг: 0

Спасибо - буду пробовать. Уже ушел с работы )
Пошел чуть другим путем вроде заработало - завтра отпишусь, если интересно, как обошел это...

MATEVI Подменю пользователя
сообщение 23.02.12, 23:32
Сообщение #8

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 958 раз
Рейтинг: 0

Если СТР.СчетДТ.ВидыСубконто.Количество()>0 Тогда                
        Движение.СубконтоДт.Вставить(СТР.СчетДТ.ВидыСубконто[0].ВидСубконто,СТР.СубконтоДт1);    
КонецЕсли;

Или вот такой велик.

Vofka Подменю пользователя
сообщение 24.02.12, 9:39
Сообщение #9

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13957
Из: Киев
Спасибо сказали: 4523 раз
Рейтинг: 3646.4

Цитата(Agapov_Stas @ 23.02.12, 23:32) *
Уже ушел с работы )

В смысле уволился? haha.gif

Цитата(Agapov_Stas @ 23.02.12, 19:39) *
завтра отпишусь, если интересно, как обошел это...

По правилам хорошего тона... smile.gif

Сообщение отредактировал Vofka - 24.02.12, 14:20

Agapov_Stas Подменю пользователя
сообщение 24.02.12, 11:43
Сообщение #10

Завсегдатай
****
Группа: Пользователи
Сообщений: 217
Из: Днепропетровск
Спасибо сказали: 18 раз
Рейтинг: 0

Мой велосипед выглядит так:

Для Каждого ТекСтрокаТабЧасть Из Результат Цикл
     //Текст кода
     Движение = Движения.Хозрасчетный.Добавить();
     Н =1;
     Для Каждого СУб ИЗ Счет.ВидыСубконто ЦИкл
                Если Н = 1 Тогда
                    Движение.СубконтоДт[Суб.ВидСубконто] = ТекСтрокаТабЧасть.СубконтоДТ1;
                ИначеЕсли Н = 2 Тогда
                    Движение.СубконтоДт[Суб.ВидСубконто] = ТекСтрокаТабЧасть.СубконтоДТ2;
                ИначеЕсли Н =3 Тогда
                    Движение.СубконтоДт[Суб.ВидСубконто] = ТекСтрокаТабЧасть.СубконтоДТ3;
                КонецЕсли;
                    Н = Н+1;
       КонецЦикла;
       //ЕЩе текст кода
КонецЦикла;


Как то так )

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


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

 

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