Новости:

К первому сообщению темы должен быть прикреплен файл примера в формате xls*.
Приложив пример, Вы избавите себя и других от вопросов типа "А какой критерий?", "А куда выводить результат?", "А сколько строк?" и все тех же просьб выложить файл. Рисовать за Вас Ваши же таблички с заданиями, а затем и решение к ним, никто желанием не горит. Да и, как показывает практика, в большинстве случаев без файла решения не найти.

Главное меню

Журнал-ордер 1С

Автор iron priest, 25.11.2009, 11:41

« назад - далее »

iron priest

очередная моя тема

гуру программирования помогите сделать одну весчь в уже сделанном программистами 1С отчете - журнале-ордере. я бы хотел в него добавить колонку субсчета. когда я формирую ЖО по счету например 10 "Основные средства" в отдельной колонке чтобы выводился субсчет для каждого объекта: например для Здания офиса 103, автомобиль Ока))) - 105, плоскогубцы - 106 и так далее как это заложено бухгалтерами предприятия.

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

iron priest

реально такая обработка экономила бы мне время процентов на 80

Алексей Шмуйлович

А что, вариант с выгрузкой у Вас так и не пошел? Там же все скопом можно выгрузить и субсчета высвечиваются.

iron priest

да не, тут не та ситуация. выгрузка работает на 100% за это спасибо))

но здесь мне нужно видеть восновном остатки на начало и на конец как в журнале-ордере

Алексей Шмуйлович

Так я и говорю про выгрузку сальдо. Я выкладывал? Или только обороты выложил?

iron priest

#5
у меня есть только обороты

если можно ссылочку на сальдо?


вот хотелось бы например после колонки "субконто" сделать колонку субсчет, где указывался субсчет для конкретного объекта

Алексей Шмуйлович

Для восьмерки выгрузка остатков в том же архиве, что и выгрузка проводок https://forum.msexcel.ru/microsoft_excel/vygruzka_provodok_iz_1sv8-t1774.0.html;msg12446#msg12446.
А для семерки я не выкладывал. У меня на работе есть, но сделано не в общем виде, а заточено под мои задачи. Если актуально, могу выложить, но для самостоятельного редактирования или не очень быстро.

iron priest

 :-[

если сможете выложите для 7-ки, посмотрю что к чему, может и прокатит


обидно что не знаю вба...

Алексей Шмуйлович

Ну, 1С - это совсем не VBA

iron priest

всеравно туго)))

Алексей Шмуйлович

Вот нашел на флешке вариант выгрузки. Но он заточен вообще под конкретную фирму. Там в к номеру счета впереди будет подставляться аббревиатура "ОЛК". Поправить дома не могу - 1С не установлен. Попробуйте сами. В крайнем случае так можно использовать.

iron priest

Начинаю выгрузку сальдо на 30.06.09
Прдпр=Константа.НазваниеОрганизации;
{C:\DOCUMENTS AND SETTINGS\ADM\РАБОЧИЙ СТОЛ\САЛЬДО ОЛК.ERT(12)}: Поле агрегатного объекта не обнаружено (НазваниеОрганизации)


вот что выдало

Алексей Шмуйлович

Да, боюсь дистанционно я тут Вам не помогу. Скорее всего какая-то национальная особенность конфигурации.
Хотя, попробуйте посмотреть список констант в конфигураторе. Замените в обработке текст Константа.НазваниеОрганизации на правильный вариант. В крайнем случае, замените вообще пустой строкой ""

iron priest

удалил строку с константой предприятия, обрабатывает период а потом пишет:

Начинаю выгрузку сальдо на 30.06.09
Прдпр<<?>>
Переменная не определена (Прдпр)
отчет_ф= КаталогИ + "Сальдо по счетам "+СтрЗаменить(СокрЛП(Константа.НазваниеОрганизации),"""","")+" на "+ВыбКонПериода+".txt";//+СокрЛП(СтрЗаменить(Фильтр,"*","x"),":",".")
{C:\DOCUMENTS AND SETTINGS\ADM\РАБОЧИЙ СТОЛ\САЛЬДО ОЛК.ERT(61)}: Поле агрегатного объекта не обнаружено (НазваниеОрганизации)

Алексей Шмуйлович

Ну это та же проблема. У Вас в конфигурации название организации вносится в какую-то другую константу. Вы когда конфигуратор запускаете, в дереве конфигурации в группе константы найдите что-нибудь похожее на название организации. И потом везде в коде модуля замените Константа.НазваниеОрганизации на соответствующее правильное название константы.

iron priest

вобщем подправил, выгрузило мне (а я еще путь изменил для сохранения).

НО! я вот взял счет 104 и у меня сальдо не сходится с тем что по оборотно-сальдовой ведомости

а программа, выгружает только сальдо ДТ и Кт на какую дату?

я хотел чтобы и начальные и конечные были

iron priest

а вот уже существующий журнал ордер нельзя переделать под мои желания? и просто потом сохранить для себя

iron priest

о!!! вроде на итог вышло!!!

есть еще один вопрос по поводу взлома пароля на конфигуратор. программер защитил конфигурацию, и я не могу зайти в неё чтобы в справочнике поставить субконто 1 "Наименование" вместо "Место хранения". а без этого обработка мне выгружает не по наименования объектов, а по местам хранения.

Алексей Шмуйлович

На счет взлома паролей, если вы конечно с копией базы балуетесь, в семерке это просто. Удаляете файлы из папки userdef (кажется так).
Оборотку конечно можно поменять, но там нужно не просто форму менять, а вообще алгоритм обхода субсчетов. Боюсь, что я не смогу помочь. Я не настолько силен в программировании 1С, чтоб браться за такие задачи. А для профессионала, думаю, плевое дело.

iron priest

c папкой я работал, но не удачно

пароль у меня стоит только если я пытаюсь открыть непосредственно конфигурацию, создавать пользователей я могу, архивировать базу и тд...

Алексей Шмуйлович

А попробуйте вметсо номера субконто 1 указать 2. Может так проскочит?

iron priest

окей, буду копаться)))

iron priest

//*******************************************
//{{БУХГАЛТЕРСКИЙ ЗАПРОС(Сформировать)

//Данный фрагмент построен конструктором.
//При повторном использовании конструктора, внесенные вручную изменения будут потеряны!!!

//{{ Схема номер 1
//{{ ПодробноеПредставлениеСубконто

Процедура Сформировать()
   Сообщить("Начинаю выгрузку сальдо на "+ВыбКонПериода);
   Прдпр=Константа.БазФирма;
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Сформировать");
   Ит = СоздатьОбъект("БухгалтерскиеИтоги");
   //Ит.ИспользоватьСубконто(ВыбВидСубконто3,, 1);
   Ит.ИспользоватьСубконто();
   //Ит.ИспользоватьСубконто();
   //Ит.ИспользоватьСубконто();
   Ит.ВключатьСубсчета(-1);
   Ит.ВыполнитьЗапрос(ВыбКонПериода, ВыбКонПериода, ,,, 1,, "С");
   Таб.ВывестиСекцию("константы");
   Таб.ВывестиСекцию("Счет");
   Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
   Ит.ВыбратьСчета();
   Пока Ит.ПолучитьСчет() = 1 Цикл
      //Таб.ВывестиСекцию("Счет");
      Сбк=Ит.Счет.КоличествоСубконто();    //считаем нулевые субконто
      Если Сбк = 0 Тогда
         ПолнНаименование=Ит.Счет.Наименование;   
         дебс=ит.скд();
         кредс=ит.скк();
         Таб.ВывестиСекцию("Субконто3");
      иначе
         деб=ит.скд();
         кред=ит.скк();
         Ит.ВыбратьСубконто(1,,,,,,1);
         Пока Ит.ПолучитьСубконто() = 1 Цикл
            ПолнНаименование=Ит.субконто(1);
            если Ит.субконто(1).ПредставлениеВида()="Контрагенты" тогда     
               //ИНН=   Ит.субконто(1).ИНН; 
               ПолнНаименование=Ит.субконто(1).ПолнНаименование ;
            конецесли;
            дебс=ит.скд();
            кредс=ит.скк();
            Таб.ВывестиСекцию("Субконто3");
            деб=деб-ит.скд();
            кред=кред-ит.скк();
         КонецЦикла;
         Если (деб<>0) или (кред<>0) Тогда
            ПолнНаименование=Ит.Счет.Наименование;   
            дебс=деб;
            кредс=кред;
            Таб.ВывестиСекцию("Субконто3");
         КонецЕсли;         
      конецесли;
   КонецЦикла;
   //Таб.ВывестиСекцию("Подвал");
   //Таб.ТолькоПросмотр(1);
   //Таб.Показать("Сформировать","");
   КаталогИ="C:\Documents and Settings\Adm\Рабочий стол\";//"C:\Buh\";//КаталогИБ()+"ExtForms\";
   отчет_ф= КаталогИ + "Сальдо по счетам "+СтрЗаменить(СокрЛП(Константа.БазФирма),"""","")+" на "+ВыбКонПериода+".txt";//+СокрЛП(СтрЗаменить(Фильтр,"*","x"),":",".")
   таб.записать(отчет_ф,"TXT");
   сообщить("Подготовлен файл "+отчет_ф);
   //ЗапуститьПриложение("explorer.exe /select, "+отчет_ф);
   //Если ПустоеЗначение(Форма.Параметр) = 0 Тогда
   //   ЗавершитьРаботуСистемы();
   //КонецЕсли;
   
КонецПроцедуры
//}}БУХГАЛТЕРСКИЙ ЗАПРОС 

Процедура Автоматически()
   
   //{{ИНИЦИАЛИЗАЦИЯ БУХГАЛТЕРСКОГО ЗАПРОСА(Сформировать)
   //{{ИНИЦИАЛИЗАЦИЯ БУХГАЛТЕРСКОГО ЗАПРОСА
   
   //Если ПустоеЗначение(Форма.Параметр) = 0 Тогда
      //ВыбКонПериода = "31.12.2007";
      //Сформировать();
      //ВыбКонПериода = "31.01.2008";
      //Сформировать();
      //ВыбКонПериода = "29.02.2008";
      //Сформировать();
      //ВыбКонПериода = "31.03.2008";
      //Сформировать();
      ВыбКонПериода = НачМесяца(ТекущаяДата())-1;
      Сформировать();
      ВыбКонПериода = НачМесяца(НачМесяца(ТекущаяДата())-1)-1;
      Сформировать();
      ВыбКонПериода = НачМесяца(НачМесяца(НачМесяца(ТекущаяДата())-1)-1)-1;
      Сформировать();
      ВыбКонПериода = ТекущаяДата()-2;
      Сформировать();
      ВыбКонПериода = ТекущаяДата()-1;
      Сформировать();
      ВыбКонПериода = ТекущаяДата();
      Сформировать();
      //ЗавершитьРаботуСистемы();
   //КонецЕсли;
      сообщить("Готово!");
КонецПроцедуры




вот где жирным я заменил на субконто 3, выдало ошибку...


ЗЫ: ничего что код высветил здесь? или удалить?

Алексей Шмуйлович

Код пускай висит, мне не жалко.

Попробуйте кусочек

   //Ит.ИспользоватьСубконто(ВыбВидСубконто3,, 1);
   Ит.ИспользоватьСубконто();

Заменить на

   Ит.ИспользоватьСубконто(ВыбВидСубконто2,, 1);
   //Ит.ИспользоватьСубконто();

А вот здесь

Таб.ВывестиСекцию("Субконто3");

не нужно заменять номер субконто. Там кажется ранше было Субконто1 - верните назад как было. Это в самом деле не номер субконто - это просто название секции таблицы и назвать его можно как угодно. Посмотрите на разметку таблицы, поймете.
Да, очень сложно это все по памяти. А на работе минуты нет, чтобы посмотреть :(

iron priest

а я всетаки взломал пароль))))


обработка работает как надо, только обидно что мне выдает остатки только на конец периода....


но всеравно спасибо!!!


тему можно ликвидировать